⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_wirlessadapter.h

📁 一个无线网卡的驱动程序,基于win2
💻 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 + -