|
由于刚转过来做WinCE驱动,很多东西不懂,请xdjm们知道的帮忙回答一下,先谢了
我做了个最简单的USB扫描仪驱动,结果在USBDeviceAttach中调用ActivateDevice出现问题了。返回值为NULL,我去GetLastError却返回没有错误。
那部分代码如下,是把自带的打印机驱动中提取出来的:
int n = 111;
/*extern "C"*/ //TST_API
extern "C" _declspec(dllexport)
BOOL USBDeviceAttach(
USB_HANDLE hDevice, // USB设备句柄
LPCUSB_FUNCS lpUsbFuncs, // USBDI的函数集合
LPCUSB_INTERFACE lpInterface, // 设备接口描述信息
LPCWSTR szUniqueDriverId, // 设备ID描述字符串。
LPBOOL fAcceptControl, // 返回TRUE,标识我们可以控制此设备, 反之表示不能控制
DWORD dwUnused)
{
MessageBoxW(NULL, L"USBDeviceAttach", L"", MB_OK);
#define CLIENT_REGKEY_SZ L"HKEY_LOCAL_MACHINE\\Drivers\\USB\\ClientDrivers\\Tst"
WCHAR wsSubClassRegKey [sizeof(CLIENT_REGKEY_SZ)+16] = CLIENT_REGKEY_SZ;
HANDLE h = ActivateDevice(wsSubClassRegKey,(DWORD)&n);
// HANDLE h = ActivateDeviceEx(wsSubClassRegKey,0, 0, 0);
if (NULL == h)
{
DWORD a = GetLastError();
WCHAR b[200];
swprintf(b, L"ActivateDevice error = %d", a);
MessageBoxW(NULL, b, L"", MB_OK);
}
*fAcceptControl = TRUE;
// return FALSE;
return TRUE;
}
|
|