winapi_ui_automation/shared/
hidsdi.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use shared::guiddef::LPGUID;
7use shared::hidpi::PHIDP_PREPARSED_DATA;
8use shared::minwindef::{PULONG, ULONG, USHORT};
9use um::winnt::{BOOLEAN, HANDLE, PVOID};
10STRUCT!{struct HIDD_CONFIGURATION {
11    cookie: PVOID,
12    size: ULONG,
13    RingBufferSize: ULONG,
14}}
15pub type PHIDD_CONFIGURATION = *mut HIDD_CONFIGURATION;
16STRUCT!{struct HIDD_ATTRIBUTES {
17    Size: ULONG,
18    VendorID: USHORT,
19    ProductID: USHORT,
20    VersionNumber: USHORT,
21}}
22pub type PHIDD_ATTRIBUTES = *mut HIDD_ATTRIBUTES;
23extern "system" {
24    pub fn HidD_GetAttributes(
25        HidDeviceObject: HANDLE,
26        Attributes: PHIDD_ATTRIBUTES,
27    ) -> BOOLEAN;
28    pub fn HidD_GetHidGuid(
29        HidGuid: LPGUID,
30    );
31    pub fn HidD_GetPreparsedData(
32        HidDeviceObject: HANDLE,
33        PreparsedData: *mut PHIDP_PREPARSED_DATA,
34    ) -> BOOLEAN;
35    pub fn HidD_FreePreparsedData(
36        PreparsedData: PHIDP_PREPARSED_DATA,
37    ) -> BOOLEAN;
38    pub fn HidD_FlushQueue(
39        HidDeviceObject: HANDLE,
40    ) -> BOOLEAN;
41    pub fn HidD_GetConfiguration(
42        HidDeviceObject: HANDLE,
43        Configuration: PHIDD_CONFIGURATION,
44        ConfigurationLength: ULONG,
45    ) -> BOOLEAN;
46    pub fn HidD_SetConfiguration(
47        HidDeviceObject: HANDLE,
48        Configuration: PHIDD_CONFIGURATION,
49        ConfigurationLength: ULONG,
50    ) -> BOOLEAN;
51    pub fn HidD_GetFeature(
52        HidDeviceObject: HANDLE,
53        ReportBuffer: PVOID,
54        ReportBufferLength: ULONG,
55    ) -> BOOLEAN;
56    pub fn HidD_SetFeature(
57        HidDeviceObject: HANDLE,
58        ReportBuffer: PVOID,
59        ReportBufferLength: ULONG,
60    ) -> BOOLEAN;
61    pub fn HidD_GetInputReport(
62        HidDeviceObject: HANDLE,
63        ReportBuffer: PVOID,
64        ReportBufferLength: ULONG,
65    ) -> BOOLEAN;
66    pub fn HidD_SetOutputReport(
67        HidDeviceObject: HANDLE,
68        ReportBuffer: PVOID,
69        ReportBufferLength: ULONG,
70    ) -> BOOLEAN;
71    pub fn HidD_GetNumInputBuffers(
72        HidDeviceObject: HANDLE,
73        NumberBuffers: PULONG,
74    ) -> BOOLEAN;
75    pub fn HidD_SetNumInputBuffers(
76        HidDeviceObject: HANDLE,
77        NumberBuffers: ULONG,
78    ) -> BOOLEAN;
79    pub fn HidD_GetPhysicalDescriptor(
80        HidDeviceObject: HANDLE,
81        Buffer: PVOID,
82        BufferLength: ULONG,
83    ) -> BOOLEAN;
84    pub fn HidD_GetManufacturerString(
85        HidDeviceObject: HANDLE,
86        Buffer: PVOID,
87        BufferLength: ULONG,
88    ) -> BOOLEAN;
89    pub fn HidD_GetProductString(
90        HidDeviceObject: HANDLE,
91        Buffer: PVOID,
92        BufferLength: ULONG,
93    ) -> BOOLEAN;
94    pub fn HidD_GetIndexedString(
95        HidDeviceObject: HANDLE,
96        StringIndex: ULONG,
97        Buffer: PVOID,
98        BufferLength: ULONG,
99    ) -> BOOLEAN;
100    pub fn HidD_GetSerialNumberString(
101        HidDeviceObject: HANDLE,
102        Buffer: PVOID,
103        BufferLength: ULONG,
104    ) -> BOOLEAN;
105    pub fn HidD_GetMsGenreDescriptor(
106        HidDeviceObject: HANDLE,
107        Buffer: PVOID,
108        BufferLength: ULONG,
109    ) -> BOOLEAN;
110}