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