Archive: InstDrv Plugin: InstallDriver: E0000203


InstDrv Plugin: InstallDriver: E0000203
Hi everybody,

I'm trying to use the InstDrv plugin to install a custom driver on an XP system, however, I keep getting the error

InstallDriver: E0000203
CreateDevice was called before, and returned 0.

Does anybody know this error message? I tried to find the error code in MSDN, however, I didn't find it.

Any help appreciated.

Thanx in advance!

E:\WINDDK\3790.1830\inc\wnet>findstr /i 203 setupapi.h
#define ERROR_NO_DRIVER_SELECTED (APPLICATION_ERROR_MASK|ERROR_SEVERITY_ERROR|0x203)


Hello,

thank you for your quick reply. I googled for ERROR_NO_DRIVER_SELECTED, however, I still don't know how to avoid this error.
Perhaps I should download the source code for the InstDrv plugin and debug it, so that I can see where this error occurs exactly.

So nobody has ever had this error before?

Thanx again..


Well I did, but I always know *I* was wrong somewhere, so yes get the source and let the debugging quest begin, if you persist you will solve the issue you have, I feel it...


Hi,
did you solved the problem? I run into the same problem but cannot find a solution.

Ingo


So I was looking over the plug-in today, and I found what I suspect might be the issue in create device. There is a fundamental flaw in the current code, in that for SetupDiCreateDeviceInfo, DICD_GENERATE_ID is sent as a flag.

MSDN: http://msdn2.microsoft.com/en-us/library/ms792966.aspx
WINSETUPAPI BOOL WINAPI
SetupDiCreateDeviceInfo(
IN HDEVINFO DeviceInfoSet,
IN PCTSTR DeviceName,
IN LPGUID ClassGuid,
IN PCTSTR DeviceDescription, OPTIONAL
IN HWND hwndParent, OPTIONAL
IN DWORD CreationFlags,
OUT PSP_DEVINFO_DATA DeviceInfoData OPTIONAL
);

DICD_GENERATE_ID
If this flag is specified, DeviceName contains only a Root-enumerated device ID and the system creates a unique device instance key for it. This unique device instance key is generated as:

Enum\Root\DeviceName\InstanceID
where InstanceID is a four-digit, base-10 number that is unique among all subkeys under Enum\Root\DeviceName. Call SetupDiGetDeviceInstanceId to find out what ID was generated for this device information element.

Essentially, by having this flag in the call to SetDiCreateDeviceInfo, the plug-in is limited to generic device names like "foobar123". Specifying the PnP enumeration is NOT possible (eg: "USB\foobar123").

Sorry I didn't fix the bug, but I haven't really had time. Maybe someone else can see if they can fix this problem and upload a new version of the plug-in?

~Arrow15