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
31typedef LONG NTSTATUS;
32
33#include "hidusage.h"
34#include "hidpi.h"
35
36typedef struct _HIDD_CONFIGURATION {
37  PVOID cookie;
38  ULONG size;
39  ULONG RingBufferSize;
40} HIDD_CONFIGURATION,*PHIDD_CONFIGURATION;
41
42typedef struct _HIDD_ATTRIBUTES {
43  ULONG Size;
44  USHORT VendorID;
45  USHORT ProductID;
46  USHORT VersionNumber;
47} HIDD_ATTRIBUTES,*PHIDD_ATTRIBUTES;
48
49BOOLEAN NTAPI HidD_FlushQueue (HANDLE HidDeviceObject);
50BOOLEAN NTAPI HidD_FreePreparsedData (PHIDP_PREPARSED_DATA PreparsedData);
51BOOLEAN NTAPI HidD_GetAttributes (HANDLE HidDeviceObject, PHIDD_ATTRIBUTES Attributes);
52BOOLEAN NTAPI HidD_GetConfiguration (HANDLE HidDeviceObject, PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
53BOOLEAN NTAPI HidD_GetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
54void NTAPI HidD_GetHidGuid (LPGUID HidGuid);
55BOOLEAN NTAPI HidD_GetInputReport (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
56BOOLEAN NTAPI HidD_GetIndexedString (HANDLE HidDeviceObject, ULONG StringIndex, PVOID Buffer, ULONG BufferLength);
57BOOLEAN NTAPI HidD_GetManufacturerString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
58BOOLEAN NTAPI HidD_GetMsGenreDescriptor (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
59BOOLEAN NTAPI HidD_GetNumInputBuffers (HANDLE HidDeviceObject, PULONG NumberBuffers);
60BOOLEAN NTAPI HidD_GetPhysicalDescriptor (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
61BOOLEAN NTAPI HidD_GetPreparsedData (HANDLE HidDeviceObject, PHIDP_PREPARSED_DATA *PreparsedData);
62BOOLEAN NTAPI HidD_GetProductString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
63BOOLEAN NTAPI HidD_GetSerialNumberString (HANDLE HidDeviceObject, PVOID Buffer, ULONG BufferLength);
64BOOLEAN NTAPI HidD_SetConfiguration (HANDLE HidDeviceObject, PHIDD_CONFIGURATION Configuration, ULONG ConfigurationLength);
65BOOLEAN NTAPI HidD_SetFeature (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
66BOOLEAN NTAPI HidD_SetNumInputBuffers (HANDLE HidDeviceObject, ULONG NumberBuffers);
67BOOLEAN NTAPI HidD_SetOutputReport (HANDLE HidDeviceObject, PVOID ReportBuffer, ULONG ReportBufferLength);
68
69#include <poppack.h>
70
71#endif
72#endif
73