xref: /reactos/sdk/include/ddk/hidpddi.h (revision 84344399)
1 #ifndef _HIDPDDI_H
2 #define _HIDPDDI_H
3 
4 #include "hidusage.h"
5 #include "hidpi.h"
6 
7 typedef struct _HIDP_COLLECTION_DESC
8 {
9     USAGE  UsagePage;
10     USAGE  Usage;
11     UCHAR  CollectionNumber;
12     UCHAR  Reserved [15];
13     USHORT InputLength;
14     USHORT OutputLength;
15     USHORT FeatureLength;
16     USHORT PreparsedDataLength;
17     PHIDP_PREPARSED_DATA PreparsedData;
18 }HIDP_COLLECTION_DESC, *PHIDP_COLLECTION_DESC;
19 
20 typedef struct _HIDP_REPORT_IDS
21 {
22     UCHAR  ReportID;
23     UCHAR  CollectionNumber;
24     USHORT InputLength;
25     USHORT OutputLength;
26     USHORT FeatureLength;
27 }HIDP_REPORT_IDS, *PHIDP_REPORT_IDS;
28 
29 typedef struct _HIDP_GETCOLDESC_DBG
30 {
31     ULONG BreakOffset;
32     ULONG ErrorCode;
33     ULONG Args[6];
34 }HIDP_GETCOLDESC_DBG, *PHIDP_GETCOLDESC_DBG;
35 
36 typedef struct _HIDP_DEVICE_DESC
37 {
38     PHIDP_COLLECTION_DESC CollectionDesc;
39     ULONG                 CollectionDescLength;
40     PHIDP_REPORT_IDS      ReportIDs;
41     ULONG                 ReportIDsLength;
42     HIDP_GETCOLDESC_DBG   Dbg;
43 }HIDP_DEVICE_DESC, *PHIDP_DEVICE_DESC;
44 
45 NTSTATUS
46 NTAPI
47 HidP_GetCollectionDescription(
48     IN PHIDP_REPORT_DESCRIPTOR ReportDesc,
49     IN ULONG DescLength,
50     IN POOL_TYPE PoolType,
51     OUT PHIDP_DEVICE_DESC DeviceDescription
52 );
53 
54 VOID
55 NTAPI
56 HidP_FreeCollectionDescription (
57     IN PHIDP_DEVICE_DESC DeviceDescription
58 );
59 
60 NTSTATUS
61 NTAPI
62 HidP_SysPowerEvent (
63     IN PCHAR HidPacket,
64     IN USHORT HidPacketLength,
65     IN PHIDP_PREPARSED_DATA Ppd,
66     OUT PULONG OutputBuffer
67 );
68 
69 NTSTATUS
70 NTAPI
71 HidP_SysPowerCaps (
72     IN PHIDP_PREPARSED_DATA Ppd,
73     OUT PULONG OutputBuffer
74 );
75 
76 #define HIDP_GETCOLDESC_SUCCESS               0x00
77 #define HIDP_GETCOLDESC_RESOURCES             0x01
78 #define HIDP_GETCOLDESC_BUFFER                0x02
79 #define HIDP_GETCOLDESC_LINK_RESOURCES        0x03
80 #define HIDP_GETCOLDESC_UNEXP_END_COL         0x04
81 #define HIDP_GETCOLDESC_PREPARSE_RESOURCES    0x05
82 #define HIDP_GETCOLDESC_ONE_BYTE              0x06
83 #define HIDP_GETCOLDESC_TWO_BYTE              0x07
84 #define HIDP_GETCOLDESC_FOUR_BYTE             0x08
85 #define HIDP_GETCOLDESC_BYTE_ALLIGN           0x09
86 #define HIDP_GETCOLDESC_MAIN_ITEM_NO_USAGE    0x0A
87 #define HIDP_GETCOLDESC_TOP_COLLECTION_USAGE  0x0B
88 #define HIDP_GETCOLDESC_PUSH_RESOURCES        0x10
89 #define HIDP_GETCOLDESC_ITEM_UNKNOWN          0x12
90 #define HIDP_GETCOLDESC_REPORT_ID             0x13
91 #define HIDP_GETCOLDESC_BAD_REPORT_ID         0x14
92 #define HIDP_GETCOLDESC_NO_REPORT_ID          0x15
93 #define HIDP_GETCOLDESC_DEFAULT_ID_ERROR      0x16
94 #define HIDP_GETCOLDESC_NO_DATA               0x1A
95 #define HIDP_GETCOLDESC_INVALID_MAIN_ITEM     0x1B
96 #define HIDP_GETCOLDESC_NO_CLOSE_DELIMITER    0x20
97 #define HIDP_GETCOLDESC_NOT_VALID_DELIMITER   0x21
98 #define HIDP_GETCOLDESC_MISMATCH_OC_DELIMITER 0x22
99 #define HIDP_GETCOLDESC_UNSUPPORTED           0x40
100 
101 #endif
102