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