KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1266回复:3

我的DRIVER要读HID设备上的STRING DESCRIPTOR,算法对吗?

楼主#
更多 发布于:2001-08-14 17:25
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;
}
“萎软”,是Microsoft的小名!
Owen.Guo
驱动中牛
驱动中牛
  • 注册日期2001-03-30
  • 最后登录2012-03-29
  • 粉丝0
  • 关注1
  • 积分402分
  • 威望260点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-14 19:52
Windows WDM设备驱动程序开发指南(Chris Cant著)这本书上有代码你可以查的。
同时也问一下哪位知道USB 4D mouse HID report描述员?
Owen.Guo 祝你成功!
KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-08-15 12:33
这个算法可以的,可以读数据,但是,每次IoStatusBlock.Information 都被设为0(表示读到的BYTE数),而事实上Buffer里是有数据的。为什么?
“萎软”,是Microsoft的小名!
yyx_200
禁止发言
禁止发言
  • 注册日期2001-12-24
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72283分
  • 威望361771点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-03 23:46
用户被禁言,该主题自动屏蔽!
游客

返回顶部