阅读:1265回复:3
我的DRIVER要读HID设备上的STRING DESCRIPTOR,算法对吗?
NTSTATUS NTAPI GetString (PDEVICE_OBJECT Fdo, ULONG uIndex, WCHAR* Buffer, ULONG BufferLen)
{ KEVENT event; IO_STATUS_BLOCK IoStatusBlock; KeInitializeEvent(&event,NotificationEvent,FALSE); PDEVICE_EXTENSION pDX = (PDEVICE_EXTENSION)Fdo->DeviceExtension; PIRP Irp = IoBuildDeviceIoControlRequest(IOCTL_HID_GET_INDEXED_STRING, pDX->Ldo, &uIndex, sizeof(ULONG), (PVOID)Buffer, BufferLen, FALSE, &event, &IoStatusBlock); if (!Irp) { return STATUS_INSUFFICIENT_RESOURCES; } NTSTATUS ntStatus = IoCallDriver(pDX->Ldo, Irp); if (ntStatus == STATUS_PENDING) { KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL); } return IoStatusBlock.Status; } |
|
|
沙发#
发布于:2001-08-14 19:52
Windows WDM设备驱动程序开发指南(Chris Cant著)这本书上有代码你可以查的。
同时也问一下哪位知道USB 4D mouse HID report描述员? |
|
|
板凳#
发布于:2001-08-15 12:33
这个算法可以的,可以读数据,但是,每次IoStatusBlock.Information 都被设为0(表示读到的BYTE数),而事实上Buffer里是有数据的。为什么?
|
|
|
地板#
发布于:2003-10-03 23:46
用户被禁言,该主题自动屏蔽! |
|