21 ULONG CollectionNumber)
39 DPRINT1(
"[HIDCLASS] GetCollectionDescription CollectionNumber %x not found\n", CollectionNumber);
47 ULONG CollectionNumber)
65 DPRINT1(
"[HIDCLASS] GetReportDescription CollectionNumber %x not found\n", CollectionNumber);
91 DPRINT1(
"[HIDCLASS] GetReportDescriptionByReportID ReportID %x not found\n",
ReportID);
166 DPRINT(
"NewBuffer %S\n", NewBuffer);
227 ASSERT(CollectionDescription);
231 switch (CollectionDescription->
Usage)
294 Irp->IoStatus.Information = 0;
443 Irp->IoStatus.Information = 0;
525 DeviceRelation->
Count = 1;
547 &GUID_DEVINTERFACE_HID,
550 DPRINT(
"[HIDCLASS] IoRegisterDeviceInterfaceState Status %x\n",
Status);
557 DPRINT(
"[HIDCLASS] IoSetDeviceInterFaceState %x\n",
Status);
603 DPRINT1(
"[HIDCLASS] PDO IRP_MN_QUERY_INTERFACE not implemented\n");
622 DPRINT1(
"Denying removal of HID device due to IRP cancellation bugs\n");
683 if (!DeviceRelations)
700 while (Index < FDODeviceExtension->Common.DeviceDescription.CollectionDescLength)
758 PDODeviceObject->
Flags &= ~DO_DEVICE_INITIALIZING;
764 DeviceRelations->
Count++;
800 *OutDeviceRelations = DeviceRelations;
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
#define STATUS_NOT_SUPPORTED
#define NT_SUCCESS(StatCode)
#define ExAllocatePoolWithTag(hernya, size, tag)
struct _DEVICE_OBJECT * PDEVICE_OBJECT
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
NTSTATUS HidClassFDO_DispatchRequestSynchronous(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PHIDP_REPORT_IDS HidClassPDO_GetReportDescriptionByReportID(PHIDP_DEVICE_DESC DeviceDescription, UCHAR ReportID)
NTSTATUS HidClassPDO_HandleQueryCompatibleId(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS HidClassPDO_PnP(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
PHIDP_REPORT_IDS HidClassPDO_GetReportDescription(PHIDP_DEVICE_DESC DeviceDescription, ULONG CollectionNumber)
NTSTATUS HidClassPDO_CreatePDO(IN PDEVICE_OBJECT DeviceObject, OUT PDEVICE_RELATIONS *OutDeviceRelations)
PHIDP_COLLECTION_DESC HidClassPDO_GetCollectionDescription(PHIDP_DEVICE_DESC DeviceDescription, ULONG CollectionNumber)
NTSTATUS HidClassPDO_HandleQueryInstanceId(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS HidClassPDO_HandleQueryHardwareId(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
NTSTATUS HidClassPDO_HandleQueryDeviceId(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
_Must_inspect_result_ _In_ UCHAR ReportID
#define HID_USAGE_GENERIC_GAMEPAD
#define HID_USAGE_GENERIC_MOUSE
#define HID_USAGE_CONSUMERCTRL
#define HID_USAGE_GENERIC_POINTER
#define HID_USAGE_GENERIC_KEYPAD
#define HID_USAGE_PAGE_GENERIC
#define HID_USAGE_PAGE_CONSUMER
#define HID_USAGE_GENERIC_SYSTEM_CTL
#define HID_USAGE_GENERIC_KEYBOARD
#define HID_USAGE_GENERIC_JOYSTICK
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define ExFreePoolWithTag(_P, _T)
#define FILE_AUTOGENERATED_DEVICE_NAME
_In_ ULONG _In_ ULONG Offset
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define IoCopyCurrentIrpStackLocationToNext(Irp)
NTSTATUS NTAPI IoCreateDevice(IN PDRIVER_OBJECT DriverObject, IN ULONG DeviceExtensionSize, IN PUNICODE_STRING DeviceName, IN DEVICE_TYPE DeviceType, IN ULONG DeviceCharacteristics, IN BOOLEAN Exclusive, OUT PDEVICE_OBJECT *DeviceObject)
VOID NTAPI IoDeleteDevice(IN PDEVICE_OBJECT DeviceObject)
NTSTATUS NTAPI IoRegisterDeviceInterface(IN PDEVICE_OBJECT PhysicalDeviceObject, IN CONST GUID *InterfaceClassGuid, IN PUNICODE_STRING ReferenceString OPTIONAL, OUT PUNICODE_STRING SymbolicLinkName)
NTSTATUS NTAPI IoSetDeviceInterfaceState(IN PUNICODE_STRING SymbolicLinkName, IN BOOLEAN Enable)
#define IoCompleteRequest
#define STATUS_DEVICE_CONFIGURATION_ERROR
#define FILE_DEVICE_UNKNOWN
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
HIDP_DEVICE_DESC DeviceDescription
PHIDCLASS_DRIVER_EXTENSION DriverExtension
HID_DEVICE_ATTRIBUTES Attributes
HID_DEVICE_EXTENSION HidDeviceExtension
PDRIVER_OBJECT DriverObject
PDEVICE_RELATIONS DeviceRelations
HIDCLASS_COMMON_DEVICE_EXTENSION Common
DEVICE_CAPABILITIES Capabilities
HIDCLASS_COMMON_DEVICE_EXTENSION Common
PDEVICE_OBJECT FDODeviceObject
PHIDCLASS_FDO_EXTENSION FDODeviceExtension
DEVICE_CAPABILITIES Capabilities
UNICODE_STRING DeviceInterface
PDEVICE_OBJECT Objects[1]
PHIDP_COLLECTION_DESC CollectionDesc
ULONG CollectionDescLength
PDEVICE_OBJECT PhysicalDeviceObject
PVOID MiniDeviceExtension
PDEVICE_OBJECT NextDeviceObject
union _IO_STACK_LOCATION::@1581 Parameters
struct _IO_STACK_LOCATION::@3980::@4007 DeviceCapabilities
struct _IO_STACK_LOCATION::@3980::@4005 QueryDeviceRelations
struct _IO_STACK_LOCATION::@3980::@4011 QueryId
#define FIELD_OFFSET(t, f)
#define RtlCopyMemory(Destination, Source, Length)
#define RtlZeroMemory(Destination, Length)
#define STATUS_UNSUCCESSFUL
#define STATUS_INSUFFICIENT_RESOURCES
_In_ WDFCOLLECTION _In_ ULONG Index
_In_ PDEVICE_OBJECT DeviceObject
_In_ WDFDEVICE _In_ PPNP_BUS_INFORMATION BusInformation
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ PCUNICODE_STRING DeviceDescription
#define IRP_MN_CANCEL_STOP_DEVICE
#define IRP_MN_QUERY_PNP_DEVICE_STATE
#define IRP_MN_QUERY_INTERFACE
#define IRP_MN_START_DEVICE
#define IRP_MN_REMOVE_DEVICE
#define IRP_MN_QUERY_DEVICE_RELATIONS
#define IRP_MN_QUERY_STOP_DEVICE
#define IRP_MN_QUERY_CAPABILITIES
#define IRP_MN_CANCEL_REMOVE_DEVICE
#define IRP_MN_QUERY_BUS_INFORMATION
#define IRP_MN_QUERY_REMOVE_DEVICE
#define ObReferenceObject