6#define _HIDPI_NO_FUNCTION_MACROS_
17#define HID_REPORT_TYPE_ANY 0x07
20#define ITEM_TYPE_MAIN 0x0
21#define ITEM_TYPE_GLOBAL 0x1
22#define ITEM_TYPE_LOCAL 0x2
23#define ITEM_TYPE_LONG 0x3
25#define ITEM_TAG_MAIN_INPUT 0x8
26#define ITEM_TAG_MAIN_OUTPUT 0x9
27#define ITEM_TAG_MAIN_FEATURE 0xb
28#define ITEM_TAG_MAIN_COLLECTION 0xa
29#define ITEM_TAG_MAIN_END_COLLECTION 0xc
31#define ITEM_TAG_GLOBAL_USAGE_PAGE 0x0
32#define ITEM_TAG_GLOBAL_LOGICAL_MINIMUM 0x1
33#define ITEM_TAG_GLOBAL_LOGICAL_MAXIMUM 0x2
34#define ITEM_TAG_GLOBAL_PHYSICAL_MINIMUM 0x3
35#define ITEM_TAG_GLOBAL_PHYSICAL_MAXIMUM 0x4
36#define ITEM_TAG_GLOBAL_UNIT_EXPONENT 0x5
37#define ITEM_TAG_GLOBAL_UNIT 0x6
38#define ITEM_TAG_GLOBAL_REPORT_SIZE 0x7
39#define ITEM_TAG_GLOBAL_REPORT_ID 0x8
40#define ITEM_TAG_GLOBAL_REPORT_COUNT 0x9
41#define ITEM_TAG_GLOBAL_PUSH 0xa
42#define ITEM_TAG_GLOBAL_POP 0xb
44#define ITEM_TAG_LOCAL_USAGE 0x0
45#define ITEM_TAG_LOCAL_USAGE_MINIMUM 0x1
46#define ITEM_TAG_LOCAL_USAGE_MAXIMUM 0x2
47#define ITEM_TAG_LOCAL_DESIGNATOR_INDEX 0x3
48#define ITEM_TAG_LOCAL_DESIGNATOR_MINIMUM 0x4
49#define ITEM_TAG_LOCAL_DESIGNATOR_MAXIMUM 0x5
50#define ITEM_TAG_LOCAL_STRING_INDEX 0x7
51#define ITEM_TAG_LOCAL_STRING_MINIMUM 0x8
52#define ITEM_TAG_LOCAL_STRING_MAXIMUM 0x9
53#define ITEM_TAG_LOCAL_DELIMITER 0xa
55#define ITEM_TAG_LONG 0xf
57#define COLLECTION_PHYSICAL 0x00
58#define COLLECTION_APPLICATION 0x01
59#define COLLECTION_LOGICAL 0x02
60#define COLLECTION_REPORT 0x03
61#define COLLECTION_NAMED_ARRAY 0x04
62#define COLLECTION_USAGE_SWITCH 0x05
63#define COLLECTION_USAGE_MODIFIER 0x06
64#define COLLECTION_ALL 0xff
66#define UNIT_SYSTEM 0x0
67#define UNIT_LENGTH 0x1
70#define UNIT_TEMPERATURE 0x4
71#define UNIT_CURRENT 0x5
72#define UNIT_LUMINOUS_INTENSITY 0x6
74#define USAGE_PAGE_SHIFT 16
75#define USAGE_PAGE_MASK 0xffff
76#define USAGE_ID_SHIFT 0
77#define USAGE_ID_MASK 0xffff
114#define LBITFIELD9(b1,b2,b3,b4,b5,b6,b7,b8,b9) USHORT b9,b8,b7,b6,b5,b4,b3,b2,b1
142 struct __GLOBAL_ITEM_STATE__ *
Next;
261#define HID_REPORT_TYPE_INPUT 0x01
262#define HID_REPORT_TYPE_OUTPUT 0x02
263#define HID_REPORT_TYPE_FEATURE 0x04
316 IN ULONG ReportDescriptorLength);
326 IN ULONG ReportDescriptorLength);
336 IN ULONG ReportDescriptorLength);
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
_Must_inspect_result_ _In_ USAGE UsagePage
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS _Inout_ PUSHORT ValueCapsLength
_Must_inspect_result_ _In_ USHORT _Inout_updates_to_ UsageLength PUSAGE_AND_PAGE _Inout_ ULONG * UsageLength
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE _Out_ PHIDP_VALUE_CAPS ValueCaps
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
ULONG HidParser_UsesReportId(IN PVOID CollectionContext, IN UCHAR ReportType)
struct __GLOBAL_ITEM_STATE_ * PGLOBAL_ITEM_STATE
struct ITEM_PREFIX * PITEM_PREFIX
PHID_COLLECTION HidParser_GetCollectionFromContext(IN PVOID Context)
struct __HID_COLLECTION__ HID_COLLECTION
struct _HID_REPORT * PHID_REPORT
struct __GLOBAL_ITEM_STATE_ GLOBAL_ITEM_STATE
struct usage_value * PUSAGE_VALUE
struct _HID_REPORT HID_REPORT
struct __HID_COLLECTION__ * PHID_COLLECTION
struct MAIN_ITEM_DATA * PMAIN_ITEM_DATA
struct LOCAL_ITEM_STATE * PLOCAL_ITEM_STATE
PHID_REPORT HidParser_GetReportInCollection(IN PVOID Context, IN UCHAR ReportType)
NTSTATUS HidParser_BuildContext(IN PVOID ParserContext, IN ULONG CollectionIndex, IN ULONG ContextSize, OUT PVOID *CollectionContext)
struct HID_REPORT_ITEM * PHID_REPORT_ITEM
struct usage_value USAGE_VALUE
ULONG HidParser_NumberOfTopCollections(IN PVOID ParserContext)
NTSTATUS HidParser_GetSpecificValueCapsWithReport(IN PVOID CollectionContext, IN UCHAR ReportType, IN USHORT UsagePage, IN USHORT Usage, OUT PHIDP_VALUE_CAPS ValueCaps, IN OUT PUSHORT ValueCapsLength)
ULONG HidParser_GetContextSize(IN PVOID ParserContext, IN ULONG CollectionNumber)
NTSTATUS HidParser_GetUsageValueWithReport(IN PVOID CollectionContext, IN UCHAR ReportType, IN USAGE UsagePage, IN USAGE Usage, OUT PULONG UsageValue, IN PCHAR ReportDescriptor, IN ULONG ReportDescriptorLength)
NTSTATUS HidParser_GetUsagesWithReport(IN PVOID CollectionContext, IN UCHAR ReportType, IN USAGE UsagePage, OUT USAGE *UsageList, IN OUT PULONG UsageLength, IN PCHAR ReportDescriptor, IN ULONG ReportDescriptorLength)
struct LONG_ITEM * PLONG_ITEM
NTSTATUS HidParser_ParseReportDescriptor(PUCHAR Report, ULONG ReportSize, OUT PVOID *ParserContext)
ULONG HidParser_GetReportItemCountFromReportType(IN PVOID CollectionContext, IN UCHAR ReportType)
ULONG HidParser_GetReportLength(IN PVOID CollectionContext, IN UCHAR ReportType)
ULONG HidParser_GetMaxUsageListLengthWithReportAndPage(IN PVOID CollectionContext, IN UCHAR ReportType, IN USAGE UsagePage OPTIONAL)
ULONG HidParser_GetReportItemTypeCountFromReportType(IN PVOID CollectionContext, IN UCHAR ReportType, IN ULONG bData)
struct HID_PARSER_CONTEXT * PHID_PARSER_CONTEXT
NTSTATUS HidParser_GetScaledUsageValueWithReport(IN PVOID CollectionContext, IN UCHAR ReportType, IN USAGE UsagePage, IN USAGE Usage, OUT PLONG UsageValue, IN PCHAR ReportDescriptor, IN ULONG ReportDescriptorLength)
ULONG HidParser_CalculateContextSize(IN PHID_COLLECTION Collection)
struct SHORT_ITEM * PSHORT_ITEM
ULONG HidParser_GetTotalCollectionCount(IN PVOID CollectionContext)
NTSTATUS HidParser_BuildCollectionContext(IN PHID_COLLECTION RootCollection, IN PVOID Context, IN ULONG ContextSize)
NTSTATUS HidParser_GetCollectionUsagePage(IN PVOID CollectionContext, OUT PUSHORT Usage, OUT PUSHORT UsagePage)
PULONG MinorVersion OPTIONAL
LOCAL_ITEM_STATE LocalItemState
GLOBAL_ITEM_STATE GlobalItemState
PHID_COLLECTION RootCollection
ULONG UsageStackAllocated
struct __GLOBAL_ITEM_STATE__ * Next
struct __HID_COLLECTION__ * Root
struct _HID_REPORT ** Reports
struct __HID_COLLECTION__ ** Nodes
union usage_value::@4332 u
struct usage_value::@4332::@4333 s
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _In_opt_ PWDF_OBJECT_ATTRIBUTES _In_ WDFCOLLECTION Collection