2 * Copyright (C) 2015 Aric Stewart
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #include <ddk/hidclass.h>
24 typedef struct _HID_MINIDRIVER_REGISTRATION
27 PDRIVER_OBJECT DriverObject
;
28 PUNICODE_STRING RegistryPath
;
29 ULONG DeviceExtensionSize
;
30 BOOLEAN DevicesArePolled
;
32 } HID_MINIDRIVER_REGISTRATION
, *PHID_MINIDRIVER_REGISTRATION
;
34 NTSTATUS WINAPI
HidRegisterMinidriver(PHID_MINIDRIVER_REGISTRATION MinidriverRegistration
);
36 typedef struct _HID_DEVICE_EXTENSION
38 PDEVICE_OBJECT PhysicalDeviceObject
;
39 PDEVICE_OBJECT NextDeviceObject
;
40 PVOID MiniDeviceExtension
;
41 } HID_DEVICE_EXTENSION
, *PHID_DEVICE_EXTENSION
;
43 typedef struct _HID_DEVICE_ATTRIBUTES
50 } HID_DEVICE_ATTRIBUTES
, *PHID_DEVICE_ATTRIBUTES
;
52 typedef struct _HID_DESCRIPTOR
55 UCHAR bDescriptorType
;
58 UCHAR bNumDescriptors
;
59 struct _HID_DESCRIPTOR_DESC_LIST
64 } HID_DESCRIPTOR
, *PHID_DESCRIPTOR
;
66 #define HID_HID_DESCRIPTOR_TYPE 0x21
67 #define HID_REPORT_DESCRIPTOR_TYPE 0x22
69 #define IOCTL_HID_GET_DEVICE_DESCRIPTOR HID_CTL_CODE(0)
70 #define IOCTL_HID_GET_REPORT_DESCRIPTOR HID_CTL_CODE(1)
71 #define IOCTL_HID_READ_REPORT HID_CTL_CODE(2)
72 #define IOCTL_HID_WRITE_REPORT HID_CTL_CODE(3)
73 #define IOCTL_HID_GET_STRING HID_CTL_CODE(4)
74 #define IOCTL_HID_ACTIVATE_DEVICE HID_CTL_CODE(7)
75 #define IOCTL_HID_DEACTIVATE_DEVICE HID_CTL_CODE(8)
76 #define IOCTL_HID_GET_DEVICE_ATTRIBUTES HID_CTL_CODE(9)
77 #define IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST HID_CTL_CODE(10)
79 #endif /* __HIDPORT_H__ */