[HIDPARSER] Remove HID_PARSER class, and directly use functions

This commit is contained in:
Hervé Poussineau 2019-05-03 13:24:05 +02:00
parent 9df05ba4b6
commit c151f8a1c7
7 changed files with 118 additions and 338 deletions

View file

@ -10,15 +10,6 @@
#pragma once
//
// function prototypes
//
typedef PVOID (NTAPI *PHIDPARSER_ALLOC_FUNCTION)(ULONG Size);
typedef VOID (NTAPI *PHIDPARSER_FREE_FUNCTION)(PVOID Item);
typedef VOID (NTAPI *PHIDPARSER_ZERO_FUNCTION)(PVOID Item, ULONG Size);
typedef VOID (NTAPI *PHIDPARSER_COPY_FUNCTION)(PVOID Target, PVOID Source, ULONG Size);
typedef VOID (__cdecl *PHIDPARSER_DEBUG_FUNCTION)(LPCSTR Src, ...);
//
// status code
//
@ -42,52 +33,9 @@ typedef enum
HIDPARSER_STATUS_BAD_LOG_PHY_VALUES = -10
}HIDPARSER_STATUS_CODES;
typedef struct
{
//
// size of struct
//
unsigned long Size;
//
// allocation function
//
PHIDPARSER_ALLOC_FUNCTION Alloc;
//
// free function
//
PHIDPARSER_FREE_FUNCTION Free;
//
// zero function
//
PHIDPARSER_ZERO_FUNCTION Zero;
//
// copy function
//
PHIDPARSER_COPY_FUNCTION Copy;
//
// debug function
//
PHIDPARSER_DEBUG_FUNCTION Debug;
}HID_PARSER, *PHID_PARSER;
VOID
HidParser_InitParser(
IN PHIDPARSER_ALLOC_FUNCTION AllocFunction,
IN PHIDPARSER_FREE_FUNCTION FreeFunction,
IN PHIDPARSER_ZERO_FUNCTION ZeroFunction,
IN PHIDPARSER_COPY_FUNCTION CopyFunction,
IN PHIDPARSER_DEBUG_FUNCTION DebugFunction,
OUT PHID_PARSER Parser);
NTSTATUS
NTAPI
HidParser_GetCollectionDescription(
IN PHID_PARSER Parser,
IN PHIDP_REPORT_DESCRIPTOR ReportDesc,
IN ULONG DescLength,
IN POOL_TYPE PoolType,
@ -96,14 +44,12 @@ HidParser_GetCollectionDescription(
VOID
NTAPI
HidParser_FreeCollectionDescription(
IN PHID_PARSER Parser,
IN PHIDP_DEVICE_DESC DeviceDescription);
HIDAPI
NTSTATUS
NTAPI
HidParser_GetCaps(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
OUT PHIDP_CAPS Capabilities);
@ -111,7 +57,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetSpecificValueCaps(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -125,7 +70,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetButtonCaps(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
HIDP_REPORT_TYPE ReportType,
PHIDP_BUTTON_CAPS ButtonCaps,
@ -135,7 +79,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetSpecificButtonCaps(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -148,7 +91,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetScaledUsageValue(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -163,7 +105,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetData(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
OUT PHIDP_DATA DataList,
@ -175,7 +116,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetExtendedAttributes(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USHORT DataIndex,
@ -186,7 +126,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetLinkCollectionNodes(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
OUT PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes,
IN OUT PULONG LinkCollectionNodesLength);
@ -196,7 +135,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetUsageValue(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -221,7 +159,6 @@ HIDAPI
ULONG
NTAPI
HidParser_MaxUsageListLength(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage OPTIONAL);
@ -230,7 +167,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetUsages(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -244,7 +180,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetUsagesEx(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USHORT LinkCollection,
@ -257,7 +192,6 @@ HidParser_GetUsagesEx(
NTSTATUS
NTAPI
HidParser_SysPowerEvent (
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN PCHAR HidPacket,
IN USHORT HidPacketLength,
@ -266,7 +200,6 @@ HidParser_SysPowerEvent (
NTSTATUS
NTAPI
HidParser_SysPowerCaps (
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
OUT PULONG OutputBuffer);
@ -274,7 +207,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetUsageValueArray(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -300,7 +232,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_UnsetUsages(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -325,7 +256,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_TranslateUsageAndPagesToI8042ScanCodes(
IN PHID_PARSER Parser,
IN PUSAGE_AND_PAGE ChangedUsageList,
IN ULONG UsageListLength,
IN HIDP_KEYBOARD_DIRECTION KeyAction,
@ -337,7 +267,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_SetUsages(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -351,7 +280,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_SetUsageValueArray(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -366,7 +294,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_SetUsageValue(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -380,7 +307,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_SetScaledUsageValue(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN USAGE UsagePage,
@ -394,7 +320,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_SetData(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN PHIDP_DATA DataList,
@ -406,7 +331,6 @@ HIDAPI
ULONG
NTAPI
HidParser_MaxDataListLength(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType);
@ -414,7 +338,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_InitializeReportForID(
IN PHID_PARSER Parser,
IN PVOID CollectionContext,
IN HIDP_REPORT_TYPE ReportType,
IN UCHAR ReportID,
@ -423,7 +346,6 @@ HidParser_InitializeReportForID(
HIDPARSER_STATUS
HidParser_TranslateKbdUsage(
IN PHID_PARSER Parser,
IN USAGE Usage,
IN HIDP_KEYBOARD_DIRECTION KeyAction,
IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
@ -432,7 +354,6 @@ HidParser_TranslateKbdUsage(
HIDPARSER_STATUS
HidParser_TranslateCustUsage(
IN PHID_PARSER Parser,
IN USAGE Usage,
IN HIDP_KEYBOARD_DIRECTION KeyAction,
IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState,
@ -443,7 +364,6 @@ HIDAPI
NTSTATUS
NTAPI
HidParser_GetValueCaps(
PHID_PARSER Parser,
IN PVOID CollectionContext,
HIDP_REPORT_TYPE ReportType,
PHIDP_VALUE_CAPS ValueCaps,