mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
91 lines
1.5 KiB
C
91 lines
1.5 KiB
C
#pragma once
|
|
|
|
#define _HIDPI_
|
|
#define _HIDPI_NO_FUNCTION_MACROS_
|
|
#define NDEBUG
|
|
#include <ntddk.h>
|
|
#include <hidport.h>
|
|
#include <debug.h>
|
|
#include <hubbusif.h>
|
|
#include <usbbusif.h>
|
|
#include <usbioctl.h>
|
|
#include <usb.h>
|
|
#include <usbdlib.h>
|
|
|
|
#include <hidport.h>
|
|
|
|
typedef struct
|
|
{
|
|
//
|
|
// event for completion
|
|
//
|
|
KEVENT Event;
|
|
|
|
//
|
|
// device descriptor
|
|
//
|
|
PUSB_DEVICE_DESCRIPTOR DeviceDescriptor;
|
|
|
|
//
|
|
// configuration descriptor
|
|
//
|
|
PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
|
|
|
|
//
|
|
// interface information
|
|
//
|
|
PUSBD_INTERFACE_INFORMATION InterfaceInfo;
|
|
|
|
//
|
|
// configuration handle
|
|
//
|
|
USBD_CONFIGURATION_HANDLE ConfigurationHandle;
|
|
|
|
//
|
|
// hid descriptor
|
|
//
|
|
PHID_DESCRIPTOR HidDescriptor;
|
|
|
|
} HID_USB_DEVICE_EXTENSION, *PHID_USB_DEVICE_EXTENSION;
|
|
|
|
typedef struct
|
|
{
|
|
//
|
|
// request irp
|
|
//
|
|
PIRP Irp;
|
|
|
|
//
|
|
// work item
|
|
//
|
|
PIO_WORKITEM WorkItem;
|
|
|
|
//
|
|
// device object
|
|
//
|
|
PDEVICE_OBJECT DeviceObject;
|
|
|
|
} HID_USB_RESET_CONTEXT, *PHID_USB_RESET_CONTEXT;
|
|
|
|
|
|
NTSTATUS
|
|
Hid_GetDescriptor(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN USHORT UrbFunction,
|
|
IN USHORT UrbLength,
|
|
IN OUT PVOID *UrbBuffer,
|
|
IN OUT PULONG UrbBufferLength,
|
|
IN UCHAR DescriptorType,
|
|
IN UCHAR Index,
|
|
IN USHORT LanguageIndex);
|
|
|
|
NTSTATUS
|
|
Hid_DispatchUrb(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PURB Urb);
|
|
|
|
#define USB_SET_IDLE_REQUEST 0xA
|
|
#define USB_GET_PROTOCOL_REQUEST 0x3
|
|
|
|
#define HIDUSB_TAG 'UdiH'
|
|
#define HIDUSB_URB_TAG 'rUiH'
|