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

📄 usbuser.h

📁 samsung debug tool DNW 源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
    Host Controller Miniport Driver

    The vendors must pass a guid that is recognized 
    by the miniport , this enures that the parameters
    are not miss-interpreted
    
    USBUSER_PASS_THRU
****************************************************/

typedef struct _USB_PASS_THRU_PARAMETERS {

    GUID FunctionGUID;  
    ULONG ParameterLength;
    UCHAR Parameters[4];
   
} USB_PASS_THRU_PARAMETERS, *PUSB_PASS_THRU_PARAMETERS;

typedef struct _USBUSER_PASS_THRU_REQUEST {

    USBUSER_REQUEST_HEADER Header;
    USB_PASS_THRU_PARAMETERS PassThru;
    
} USBUSER_PASS_THRU_REQUEST, *PUSBUSER_PASS_THRU_REQUEST;


/****************************************************
    API - GetPowerStateMap

    Returns specific information about a controller
    and root hubs power state given a specific 
    system state.
    
    USBUSER_GET_POWER_STATE_MAP
****************************************************/

typedef enum _WDMUSB_POWER_STATE {

    WdmUsbPowerNotMapped = 0,
    
    WdmUsbPowerSystemUnspecified = 100,
    WdmUsbPowerSystemWorking,
    WdmUsbPowerSystemSleeping1,
    WdmUsbPowerSystemSleeping2,
    WdmUsbPowerSystemSleeping3,
    WdmUsbPowerSystemHibernate,
    WdmUsbPowerSystemShutdown,

    WdmUsbPowerDeviceUnspecified = 200,
    WdmUsbPowerDeviceD0,
    WdmUsbPowerDeviceD1,
    WdmUsbPowerDeviceD2,
    WdmUsbPowerDeviceD3
    
} WDMUSB_POWER_STATE;

typedef struct _USB_POWER_INFO {

    /* input */
    WDMUSB_POWER_STATE SystemState;
    /* output */
    WDMUSB_POWER_STATE HcDevicePowerState;
    WDMUSB_POWER_STATE HcDeviceWake;
    WDMUSB_POWER_STATE HcSystemWake; 
    
    WDMUSB_POWER_STATE RhDevicePowerState;
    WDMUSB_POWER_STATE RhDeviceWake;
    WDMUSB_POWER_STATE RhSystemWake; 

    WDMUSB_POWER_STATE LastSystemSleepState; 
    
    BOOLEAN CanWakeup;
    BOOLEAN IsPowered;
   
} USB_POWER_INFO, *PUSB_POWER_INFO;

typedef struct _USBUSER_POWER_INFO_REQUEST {

    USBUSER_REQUEST_HEADER Header;
    USB_POWER_INFO PowerInformation;
    
} USBUSER_POWER_INFO_REQUEST, *PUSBUSER_POWER_INFO_REQUEST;


/****************************************************
    API - Open Raw Device access on the bus
    
    USBUSER_OP_OPEN_RAW_DEVICE
****************************************************/

typedef struct _USB_OPEN_RAW_DEVICE_PARAMETERS {

    USHORT PortStatus;
    USHORT MaxPacketEp0;

} USB_OPEN_RAW_DEVICE_PARAMETERS , *PUSB_OPEN_RAW_DEVICE_PARAMETERS;

typedef struct _USBUSER_OPEN_RAW_DEVICE {

    USBUSER_REQUEST_HEADER Header;
    USB_OPEN_RAW_DEVICE_PARAMETERS Parameters;
    
} USBUSER_OPEN_RAW_DEVICE, *PUSBUSER_OPEN_RAW_DEVICE;

/****************************************************
    API - Close Raw Device access on the bus
    
    USBUSER_OP_CLOSE_RAW_DEVICE
****************************************************/

typedef struct _USB_CLOSE_RAW_DEVICE_PARAMETERS {

    ULONG xxx;

} USB_CLOSE_RAW_DEVICE_PARAMETERS , *PUSB_CLOSE_RAW_DEVICE_PARAMETERS;

typedef struct _USBUSER_CLOSE_RAW_DEVICE {

    USBUSER_REQUEST_HEADER Header;
    USB_CLOSE_RAW_DEVICE_PARAMETERS Parameters;
    
} USBUSER_CLOSE_RAW_DEVICE, *PUSBUSER_CLOSE_RAW_DEVICE;


/****************************************************
    API - Send control command via raw device handle
    
    USBUSER_OP_SEND_RAW_COMMAND
****************************************************/

typedef struct _USB_SEND_RAW_COMMAND_PARAMETERS {

    /* setup packet */
    UCHAR Usb_bmRequest;
    UCHAR Usb_bRequest;
    USHORT Usb_wVlaue;
    USHORT Usb_wIndex;
    USHORT Usb_wLength;

    /* other parameters */
    USHORT DeviceAddress;
    USHORT MaximumPacketSize;
    ULONG Timeout;
    ULONG DataLength;
    USBD_STATUS UsbdStatusCode;
    UCHAR Data[4];

} USB_SEND_RAW_COMMAND_PARAMETERS, *PUSB_SEND_RAW_COMMAND_PARAMETERS;

typedef struct _USBUSER_SEND_RAW_COMMAND {

    USBUSER_REQUEST_HEADER Header;
    USB_SEND_RAW_COMMAND_PARAMETERS Parameters;
    
} USBUSER_SEND_RAW_COMMAND, *PUSBUSER_SEND_RAW_COMMAND;


/****************************************************
    API - return information about allocated 
        bandwidth
    
    USBUSER_GET_BANDWIDTH_INFORMATION
****************************************************/

typedef struct _USB_BANDWIDTH_INFO {

    ULONG DeviceCount;
    // total bandith in bits/sec
    ULONG TotalBusBandwidth;

    // allocated bandwidth based on a 32 sec
    // slice of bus time ie bits/32 sec
    ULONG Total32secBandwidth;
    
    ULONG AllocedBulkAndControl;
    ULONG AllocedIso;
    ULONG AllocedInterrupt_1ms;
    ULONG AllocedInterrupt_2ms;
    ULONG AllocedInterrupt_4ms;
    ULONG AllocedInterrupt_8ms;
    ULONG AllocedInterrupt_16ms;
    ULONG AllocedInterrupt_32ms;
    
} USB_BANDWIDTH_INFO, *PUSB_BANDWIDTH_INFO;

typedef struct _USBUSER_BANDWIDTH_INFO_REQUEST {

    USBUSER_REQUEST_HEADER Header;
    USB_BANDWIDTH_INFO BandwidthInformation;
    
} USBUSER_BANDWIDTH_INFO_REQUEST, *PUSBUSER_BANDWIDTH_INFO_REQUEST;


/****************************************************
    API - return information data transferred on the  
        bus
    
    USBUSER_BUS_STATISTICS_0
****************************************************/

typedef struct _USB_BUS_STATISTICS_0 {

    ULONG DeviceCount;

    LARGE_INTEGER CurrentSystemTime;

    ULONG CurrentUsbFrame;

    ULONG BulkBytes;
    ULONG IsoBytes;
    ULONG InterruptBytes;
    ULONG ControlDataBytes;

    ULONG PciInterruptCount;
    ULONG HardResetCount;
    ULONG WorkerSignalCount;
    ULONG CommonBufferBytes;
    ULONG WorkerIdleTimeMs;

    BOOLEAN RootHubEnabled;
     // 0=D0, 1=D1, 2=D2, 3=D3
    UCHAR RootHubDevicePowerState;
    // 1 = active 0 = idle
    UCHAR Unused;
    // used to generate legacy name HCDn 
    UCHAR NameIndex;

} USB_BUS_STATISTICS_0, *PUSB_BUS_STATISTICS_0;

typedef struct _USBUSER_BUS_STATISTICS_0_REQUEST {

    USBUSER_REQUEST_HEADER Header;
    USB_BUS_STATISTICS_0 BusStatistics0;
    
} USBUSER_BUS_STATISTICS_0_REQUEST, *PUSBUSER_BUS_STATISTICS_0_REQUEST;


/****************************************************
    API - Get USB DRIVER Version
    
    USBUSER_GET_USB_DRIVER_VERSION
****************************************************/

typedef struct _USB_DRIVER_VERSION_PARAMETERS {

    /* goat code for this rev of the stack */
    ULONG DriverTrackingCode;
    /* USBDI Api set supported */
    ULONG USBDI_Version;
    /* USB USER Api Set supported */
    ULONG USBUSER_Version;

    /* set to true if checked vesrion(s) on 
       the stack are loaded 
    */       
    BOOLEAN CheckedPortDriver;
    BOOLEAN CheckedMiniportDriver;

    /* BCD usb version 0x0110 (1.1) 0x0200 (2.0) */
    USHORT USB_Version;

} USB_DRIVER_VERSION_PARAMETERS , *PUSB_DRIVER_VERSION_PARAMETERS;

typedef struct _USBUSER_GET_DRIVER_VERSION {

    USBUSER_REQUEST_HEADER Header;
    USB_DRIVER_VERSION_PARAMETERS Parameters;
    
} USBUSER_GET_DRIVER_VERSION, *PUSBUSER_GET_DRIVER_VERSION;

/****************************************************
    API - Get USB 2 Hardware Revision
    
    USBUSER_GET_USB2HW_VERSION
*****************************************************/

//#define USB2HW_UNKNOWN  0x00
//#define USB2HW_A0       0xA0
//#define USB2HW_A1       0xA1
//#define USB2HW_B0       0xB0

typedef struct _USB_USB2HW_VERSION_PARAMETERS {

    UCHAR Usb2HwRevision;

} USB_USB2HW_VERSION_PARAMETERS, *PUSB_USB2HW_VERSION_PARAMETERS;

typedef struct _USBUSER_GET_USB2HW_VERSION {

    USBUSER_REQUEST_HEADER Header;
    USB_USB2HW_VERSION_PARAMETERS Parameters;
    
} USBUSER_GET_USB2HW_VERSION, *PUSBUSER_GET_USB2HW_VERSION;


#include <POPPACK.H>

#endif //__USBUSER_H__



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -