Problem with PIC18F46J50 family USB enumeration
You really need to read the datasheet.  When you do, you will see that the SIE doesn't "take care" of enumeration at all.  It basically sends and receives packets.  What those packets mean and what you do about them is up to the firmware.  A significant amount of code is required to receive and respond to enumeration requests.

You can install and then look around in the source code to my PIC 18 USB framework, available from http://www.embedinc.com/pic/dload.htm.  The code modules with "USB0" in their name deal with handling endpoint 0, which is where enumeration is done.