Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538#define _HIDPI_#define _HIDPI_NO_FUNCTION_MACROS_#include <ntddk.h>#include <hidpddi.h>
#include "hidparser.h"#include "hidp.h"
#define UNIMPLEMENTED DebugFunction("%s is UNIMPLEMENTED\n", __FUNCTION__)
VOIDNTAPIHidP_FreeCollectionDescription( IN PHIDP_DEVICE_DESC DeviceDescription){ // // free collection // HidParser_FreeCollectionDescription(DeviceDescription);}
HIDAPINTSTATUSNTAPIHidP_GetCaps( IN PHIDP_PREPARSED_DATA PreparsedData, OUT PHIDP_CAPS Capabilities){ // // get caps // return HidParser_GetCaps(PreparsedData, Capabilities);}
NTSTATUSTranslateStatusForUpperLayer( IN NTSTATUS Status){ // // now we are handling only this values, for others just return // status as it is. // switch (Status) { case HIDP_STATUS_INTERNAL_ERROR: return STATUS_INSUFFICIENT_RESOURCES; case HIDP_STATUS_INVALID_REPORT_TYPE: return HIDP_STATUS_INVALID_REPORT_TYPE; case HIDP_STATUS_BUFFER_TOO_SMALL: return STATUS_BUFFER_TOO_SMALL; case HIDP_STATUS_USAGE_NOT_FOUND: return STATUS_NO_DATA_DETECTED; default: return Status; }}
NTSTATUSNTAPIHidP_GetCollectionDescription( IN PHIDP_REPORT_DESCRIPTOR ReportDesc, IN ULONG DescLength, IN POOL_TYPE PoolType, OUT PHIDP_DEVICE_DESC DeviceDescription){ NTSTATUS Status;
// // get description; // Status = HidParser_GetCollectionDescription(ReportDesc, DescLength, PoolType, DeviceDescription); return TranslateStatusForUpperLayer(Status);}
HIDAPIULONGNTAPIHidP_MaxUsageListLength( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage OPTIONAL, IN PHIDP_PREPARSED_DATA PreparsedData){ // // sanity check // ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
// // get usage length // return HidParser_MaxUsageListLength(PreparsedData, ReportType, UsagePage);}
HIDAPINTSTATUSNTAPIHidP_GetSpecificValueCaps( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_VALUE_CAPS ValueCaps, IN OUT PUSHORT ValueCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData){ // // sanity check // ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
// // get value caps // return HidParser_GetSpecificValueCaps(PreparsedData, ReportType, UsagePage, LinkCollection, Usage, ValueCaps, ValueCapsLength);}
HIDAPINTSTATUSNTAPIHidP_GetUsages( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, OUT PUSAGE UsageList, IN OUT PULONG UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ // // sanity check // ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
// // get usages // return HidParser_GetUsages(PreparsedData, ReportType, UsagePage, LinkCollection, UsageList, UsageLength, Report, ReportLength);}
#undef HidP_GetButtonCaps
HIDAPINTSTATUSNTAPIHidP_UsageListDifference( IN PUSAGE PreviousUsageList, IN PUSAGE CurrentUsageList, OUT PUSAGE BreakUsageList, OUT PUSAGE MakeUsageList, IN ULONG UsageListLength){ return HidParser_UsageListDifference(PreviousUsageList, CurrentUsageList, BreakUsageList, MakeUsageList, UsageListLength);}
HIDAPINTSTATUSNTAPIHidP_GetUsagesEx( IN HIDP_REPORT_TYPE ReportType, IN USHORT LinkCollection, OUT PUSAGE_AND_PAGE ButtonList, IN OUT ULONG *UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ return HidP_GetUsages(ReportType, HID_USAGE_PAGE_UNDEFINED, LinkCollection, &ButtonList->Usage, UsageLength, PreparsedData, Report, ReportLength);}
HIDAPINTSTATUSNTAPIHidP_UsageAndPageListDifference( IN PUSAGE_AND_PAGE PreviousUsageList, IN PUSAGE_AND_PAGE CurrentUsageList, OUT PUSAGE_AND_PAGE BreakUsageList, OUT PUSAGE_AND_PAGE MakeUsageList, IN ULONG UsageListLength){ return HidParser_UsageAndPageListDifference(PreviousUsageList, CurrentUsageList, BreakUsageList, MakeUsageList, UsageListLength);}
HIDAPINTSTATUSNTAPIHidP_GetScaledUsageValue( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, OUT PLONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ // // sanity check // ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
// // get scaled usage value // return HidParser_GetScaledUsageValue(PreparsedData, ReportType, UsagePage, LinkCollection, Usage, UsageValue, Report, ReportLength);}
HIDAPINTSTATUSNTAPIHidP_GetUsageValue( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PULONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ // // sanity check // ASSERT(ReportType == HidP_Input || ReportType == HidP_Output || ReportType == HidP_Feature);
// // get scaled usage value // return HidParser_GetUsageValue(PreparsedData, ReportType, UsagePage, LinkCollection, Usage, UsageValue, Report, ReportLength);}
HIDAPINTSTATUSNTAPIHidP_TranslateUsageAndPagesToI8042ScanCodes( IN PUSAGE_AND_PAGE ChangedUsageList, IN ULONG UsageListLength, IN HIDP_KEYBOARD_DIRECTION KeyAction, IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, IN PHIDP_INSERT_SCANCODES InsertCodesProcedure, IN PVOID InsertCodesContext){ // // translate usage pages // return HidParser_TranslateUsageAndPagesToI8042ScanCodes(ChangedUsageList, UsageListLength, KeyAction, ModifierState, InsertCodesProcedure, InsertCodesContext);}
HIDAPINTSTATUSNTAPIHidP_GetButtonCaps( HIDP_REPORT_TYPE ReportType, PHIDP_BUTTON_CAPS ButtonCaps, PUSHORT ButtonCapsLength, PHIDP_PREPARSED_DATA PreparsedData){ return HidP_GetSpecificButtonCaps(ReportType, HID_USAGE_PAGE_UNDEFINED, 0, 0, ButtonCaps, ButtonCapsLength, PreparsedData);}
HIDAPINTSTATUSNTAPIHidP_GetSpecificButtonCaps( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, OUT PHIDP_BUTTON_CAPS ButtonCaps, IN OUT PUSHORT ButtonCapsLength, IN PHIDP_PREPARSED_DATA PreparsedData){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_GetData( IN HIDP_REPORT_TYPE ReportType, OUT PHIDP_DATA DataList, IN OUT PULONG DataLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_GetExtendedAttributes( IN HIDP_REPORT_TYPE ReportType, IN USHORT DataIndex, IN PHIDP_PREPARSED_DATA PreparsedData, OUT PHIDP_EXTENDED_ATTRIBUTES Attributes, IN OUT PULONG LengthAttributes){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_GetLinkCollectionNodes( OUT PHIDP_LINK_COLLECTION_NODE LinkCollectionNodes, IN OUT PULONG LinkCollectionNodesLength, IN PHIDP_PREPARSED_DATA PreparsedData){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
NTSTATUSNTAPIHidP_SysPowerEvent( IN PCHAR HidPacket, IN USHORT HidPacketLength, IN PHIDP_PREPARSED_DATA Ppd, OUT PULONG OutputBuffer){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
NTSTATUSNTAPIHidP_SysPowerCaps( IN PHIDP_PREPARSED_DATA Ppd, OUT PULONG OutputBuffer){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_GetUsageValueArray( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, OUT PCHAR UsageValue, IN USHORT UsageValueByteLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_UnsetUsages( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN PUSAGE UsageList, IN OUT PULONG UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_TranslateUsagesToI8042ScanCodes( IN PUSAGE ChangedUsageList, IN ULONG UsageListLength, IN HIDP_KEYBOARD_DIRECTION KeyAction, IN OUT PHIDP_KEYBOARD_MODIFIER_STATE ModifierState, IN PHIDP_INSERT_SCANCODES InsertCodesProcedure, IN PVOID InsertCodesContext){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_SetUsages( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN PUSAGE UsageList, IN OUT PULONG UsageLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_SetUsageValueArray( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, IN PCHAR UsageValue, IN USHORT UsageValueByteLength, IN PHIDP_PREPARSED_DATA PreparsedData, OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_SetUsageValue( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection, IN USAGE Usage, IN ULONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_SetScaledUsageValue( IN HIDP_REPORT_TYPE ReportType, IN USAGE UsagePage, IN USHORT LinkCollection OPTIONAL, IN USAGE Usage, IN LONG UsageValue, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_SetData( IN HIDP_REPORT_TYPE ReportType, IN PHIDP_DATA DataList, IN OUT PULONG DataLength, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPIULONGNTAPIHidP_MaxDataListLength( IN HIDP_REPORT_TYPE ReportType, IN PHIDP_PREPARSED_DATA PreparsedData){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
HIDAPINTSTATUSNTAPIHidP_InitializeReportForID( IN HIDP_REPORT_TYPE ReportType, IN UCHAR ReportID, IN PHIDP_PREPARSED_DATA PreparsedData, IN OUT PCHAR Report, IN ULONG ReportLength){ UNIMPLEMENTED; ASSERT(FALSE); return STATUS_NOT_IMPLEMENTED;}
#undef HidP_GetValueCaps
HIDAPINTSTATUSNTAPIHidP_GetValueCaps( HIDP_REPORT_TYPE ReportType, PHIDP_VALUE_CAPS ValueCaps, PUSHORT ValueCapsLength, PHIDP_PREPARSED_DATA PreparsedData){ return HidP_GetSpecificValueCaps(ReportType, HID_USAGE_PAGE_UNDEFINED, HIDP_LINK_COLLECTION_UNSPECIFIED, 0, ValueCaps, ValueCapsLength, PreparsedData);}