📄 usb_wirlessadapter.h
字号:
//////////////////////////////////////////////////////////////////////////
// Copyright @2003 Peng He,Information Science Insititute,XiDian University
// MyNdis_Wdm example
//Abstract:
// 与USB设备相关的结构和原型定义,此头文件只能用于Wdm.h, Usbdi.h和usbdlib.h
// 而不能用于ndis.h和ntddndis.h
//Environment:
// kernel mode only
// Version history:
//
///////////////////////////////////////////////////////////////////////////
#ifndef USB_H
#define USB_H
//
// 定义由驱动程序产生的irp结构体
//
typedef struct _USB_CONTEXT {
PUSB_DEVICE DeviceObject;
PVOID Packet;
PURB Urb;
PIRP Irp;
PUCHAR Buffer;
UINT BufLen;
CONTEXT_TYPE Type;
ULONG fInUse;
} USB_CONTEXT, *PUSB_CONTEXT,**PPUSB_CONTEXT;
//
// 定义USB设备信息的结构体
//
typedef struct _USB_INFO
{
USBD_CONFIGURATION_HANDLE UsbConfigurationHandle; // USB设备配置句柄
PUSB_CONFIGURATION_DESCRIPTOR UsbConfigurationDescriptor; // USB设备配置描述符
PIRP IrpSubmitUrb; // 产生URB
PIRP IrpSubmitIoCtl; // 产生IO控制码
PUSB_DEVICE_DESCRIPTOR UsbDeviceDescriptor; // USB设备的设备描述符
PUSBD_INTERFACE_INFORMATION UsbInterface; // USB设备的接口信息
// urb for control diescriptor request
struct _URB_CONTROL_DESCRIPTOR_REQUEST DescriptorUrb;
// urb to use for control/status requests to USBD
//这个是商家自定义的,等清楚后加,有GET/SET_Register
//struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST ClassUrb;
} USB_INFO, *PUSB_INFO;
NTSTATUS UsbIoCompleteWrite(
IN PDEVICE_OBJECT pUsbDevObj,
IN PIRP pIrp,
IN PVOID Context
);
NTSTATUS
CallUSBD(
IN PUSB_DEVICE DeviceExt,
IN PURB Urb
);
NTSTATUS
UsbIoCompleteControl(
IN PDEVICE_OBJECT pUsbDevObj,
IN PIRP pIrp,
IN PVOID Context
);
BOOLEAN
CancelPendingControlIo(
IN PUSB_DEVICE DeviceExt,
IN PIRP IrpToCancel,
IN PKEVENT EventToClear
);
NTSTATUS MyKeWaitForSingleObject(
IN PUSB_DEVICE Adapter,
IN PVOID EventWaitingFor,
IN OUT PIRP IrpWaitingFor,
LONGLONG timeout100ns
);
NTSTATUS
SelectInterface(
IN PUSB_DEVICE DeviceExt,
IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
);
NTSTATUS
UsbIoCompleteRead(
IN PDEVICE_OBJECT pUsbDevObj,
IN PIRP pIrp,
IN PVOID Context
);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -