1 /*
2  * hidsdi.h
3  *
4  * Public interface for USB HID user space functions.
5  *
6  * Contributors:
7  *   Created by Simon Josefsson <simon@josefsson.org>
8  *   Extended by Kai Tietz
9  *
10  * THIS SOFTWARE IS NOT COPYRIGHTED
11  *
12  * This source code is offered for use in the public domain. You may
13  * use, modify or distribute it freely.
14  *
15  * This code is distributed in the hope that it will be useful but
16  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
17  * DISCLAIMED. This includes but is not limited to warranties of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19  *
20  */
21 
22 #include <winapifamily.h>
23 
24 #ifndef _HIDSDI_H
25 #define _HIDSDI_H
26 
27 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
28 
29 #include <pshpack4.h>
30 
31 typedef LONG NTSTATUS;
32 
33 #include "hidusage.h"
34 #include "hidpi.h"
35 
36 typedef struct _HIDD_CONFIGURATION {
37   PVOID cookie;
38   ULONG size;
39   ULONG RingBufferSize;
40 } HIDD_CONFIGURATION,*PHIDD_CONFIGURATION;
41 
42 typedef struct _HIDD_ATTRIBUTES {
43   ULONG Size;
44   USHORT VendorID;
45   USHORT ProductID;
46   USHORT VersionNumber;
47 } HIDD_ATTRIBUTES,*PHIDD_ATTRIBUTES;
48 
49 BOOLEAN NTAPI HidD_FlushQueue (HANDLE HidDeviceObject);
50 BOOLEAN NTAPI HidD_FreePreparsedData (PHIDP_PREPARSED_DATA PreparsedData);
51 BOOLEAN NTAPI HidD_GetAttributes (HANDLE HidDeviceObject, PHIDD_ATTRIBUTES Attributes);
52 BOOLEAN NTAPI HidD_GetConfiguration (HANDLE HidDeviceObject, PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
53 BOOLEAN NTAPI HidD_GetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
54 void NTAPI HidD_GetHidGuid (LPGUID HidGuid);
55 BOOLEAN NTAPI HidD_GetInputReport (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
56 BOOLEAN NTAPI HidD_GetIndexedString (HANDLE HidDeviceObject, ULONG StringIndex, PVOID Buffer, ULONG BufferLength);
57 BOOLEAN NTAPI HidD_GetManufacturerString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
58 BOOLEAN NTAPI HidD_GetMsGenreDescriptor (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
59 BOOLEAN NTAPI HidD_GetNumInputBuffers (HANDLE HidDeviceObject, PULONG NumberBuffers);
60 BOOLEAN NTAPI HidD_GetPhysicalDescriptor (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
61 BOOLEAN NTAPI HidD_GetPreparsedData (HANDLE HidDeviceObject, PHIDP_PREPARSED_DATA *PreparsedData);
62 BOOLEAN NTAPI HidD_GetProductString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
63 BOOLEAN NTAPI HidD_GetSerialNumberString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
64 BOOLEAN NTAPI HidD_SetConfiguration (HANDLE HidDeviceObject, PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
65 BOOLEAN NTAPI HidD_SetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
66 BOOLEAN NTAPI HidD_SetNumInputBuffers (HANDLE HidDeviceObject, ULONG NumberBuffers);
67 BOOLEAN NTAPI HidD_SetOutputReport (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
68 
69 #include <poppack.h>
70 
71 #endif
72 #endif
73