5 typedef struct _HID_MINIDRIVER_REGISTRATION
8 PDRIVER_OBJECT DriverObject
;
9 PUNICODE_STRING RegistryPath
;
10 ULONG DeviceExtensionSize
;
11 BOOLEAN DevicesArePolled
;
13 }HID_MINIDRIVER_REGISTRATION
, *PHID_MINIDRIVER_REGISTRATION
;
15 typedef struct _HID_DEVICE_EXTENSION
17 PDEVICE_OBJECT PhysicalDeviceObject
;
18 PDEVICE_OBJECT NextDeviceObject
;
19 PVOID MiniDeviceExtension
;
20 }HID_DEVICE_EXTENSION
, *PHID_DEVICE_EXTENSION
;
22 typedef struct _HID_DEVICE_ATTRIBUTES
29 }HID_DEVICE_ATTRIBUTES
, * PHID_DEVICE_ATTRIBUTES
;
33 typedef struct _HID_DESCRIPTOR
36 UCHAR bDescriptorType
;
39 UCHAR bNumDescriptors
;
41 struct _HID_DESCRIPTOR_DESC_LIST
46 }HID_DESCRIPTOR
, * PHID_DESCRIPTOR
;
50 #define HID_HID_DESCRIPTOR_TYPE 0x21
51 #define HID_REPORT_DESCRIPTOR_TYPE 0x22
52 #define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
58 (NTAPI
*HID_SEND_IDLE_CALLBACK
)(
62 typedef struct _HID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO
64 HID_SEND_IDLE_CALLBACK IdleCallback
;
66 }HID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO
, *PHID_SUBMIT_IDLE_NOTIFICATION_CALLBACK_INFO
;
70 HidRegisterMinidriver(
71 IN PHID_MINIDRIVER_REGISTRATION MinidriverRegistration
74 #if(NTDDI_VERSION>=NTDDI_WINXPSP1)
78 IN PDEVICE_OBJECT DeviceObject
,
84 #define IOCTL_HID_GET_DEVICE_DESCRIPTOR HID_CTL_CODE(0)
85 #define IOCTL_HID_GET_REPORT_DESCRIPTOR HID_CTL_CODE(1)
86 #define IOCTL_HID_READ_REPORT HID_CTL_CODE(2)
87 #define IOCTL_HID_WRITE_REPORT HID_CTL_CODE(3)
88 #define IOCTL_HID_GET_STRING HID_CTL_CODE(4)
89 #define IOCTL_HID_ACTIVATE_DEVICE HID_CTL_CODE(7)
90 #define IOCTL_HID_DEACTIVATE_DEVICE HID_CTL_CODE(8)
91 #define IOCTL_HID_GET_DEVICE_ATTRIBUTES HID_CTL_CODE(9)
92 #define IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST HID_CTL_CODE(10)
94 #define HID_HID_DESCRIPTOR_TYPE 0x21
95 #define HID_REPORT_DESCRIPTOR_TYPE 0x22
96 #define HID_PHYSICAL_DESCRIPTOR_TYPE 0x23
98 #define HID_STRING_ID_IMANUFACTURER 14
99 #define HID_STRING_ID_IPRODUCT 15
100 #define HID_STRING_ID_ISERIALNUMBER 16