ntoskrnl.exe: Add Ex[p]InterlockedFlushSList.
[wine.git] / include / ddk / hidport.h
blob3ebe273583b053120e613ee3dc10c7e3504a79f1
1 /*
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
19 #ifndef __HIDPORT_H__
20 #define __HIDPORT_H__
22 #include <ddk/hidclass.h>
24 typedef struct _HID_MINIDRIVER_REGISTRATION
26 ULONG Revision;
27 PDRIVER_OBJECT DriverObject;
28 PUNICODE_STRING RegistryPath;
29 ULONG DeviceExtensionSize;
30 BOOLEAN DevicesArePolled;
31 UCHAR Reserved[3];
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
45 ULONG Size;
46 USHORT VendorID;
47 USHORT ProductID;
48 USHORT VersionNumber;
49 USHORT Reserved[11];
50 } HID_DEVICE_ATTRIBUTES, *PHID_DEVICE_ATTRIBUTES;
52 typedef struct _HID_DESCRIPTOR
54 UCHAR bLength;
55 UCHAR bDescriptorType;
56 USHORT bcdHID;
57 UCHAR bCountry;
58 UCHAR bNumDescriptors;
59 struct _HID_DESCRIPTOR_DESC_LIST
61 UCHAR bReportType;
62 USHORT wReportLength;
63 } DescriptorList[1];
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__ */