亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbdbgddsi.h

?? 6410BSP3
?? H
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//

//=============================================================================
// File Description:
//
// Defines the interface between UsbDbgRndisMdd/UsbDbgSerMdd and UsbDbgPdd.
//
//
//=============================================================================

#ifndef __USBDBGDDSI_H_
#define __USBDBGDDSI_H_

#include <usb100.h>

#ifdef __cplusplus
extern "C" {
#endif

// endpoint direction
typedef enum USBDBG_ENDPTDIR
{
    ENDPT_DIR_RX = 0,
    ENDPT_DIR_OUT = 0,
    ENDPT_DIR_TX = 1,
    ENDPT_DIR_IN = 1
} USBDBG_ENDPTDIR;

// Messages passed to MDD by PDD
//
typedef enum USBDBG_MSG
{
    // no message
    USBDBG_MSG_NOMSG = 0,
    // PDD sends this msg to signal a SETUP packet received
    // A USBDBG_SETUP_DATA* should be placed in dwParam.
    USBDBG_MSG_SETUP_PACKET,
    // PDD sends this msg to signal an OUT packet received on an endpt
    USBDBG_MSG_EP_RX_PKT,
    // PDD sends this msg to signal an IN packet sent on an endpt
    USBDBG_MSG_EP_TX_PKT,
    // PDD sends this msg to signal BUS event detach
    USBDBG_MSG_BUS_EVENT_DETACH, 
    // PDD sends this msg to signal BUS events attach
    USBDBG_MSG_BUS_EVENT_ATTACH, 
    // PDD sends this msg to signal BUS events reset
    USBDBG_MSG_BUS_EVENT_RESET,  
    // PDD sends this msg to signal BUS events suspend
    USBDBG_MSG_BUS_EVENT_SUSPEND,
    // PDD sends this msg to signal BUS events resume
    USBDBG_MSG_BUS_EVENT_RESUME
} USBDBG_MSG;

// Commands passed by MDD to PDD
//
typedef enum USBDBG_CMD
{
    // command to abort a transfer on an endpt
    USBDBG_CMD_TRANSFER_ABORT,
    // command to stall an endpt
    USBDBG_CMD_STALL
} USBDBG_CMD;

// Flags passed by MDD to PDD
//
// indicates a send or receive data for EP0 status stage (ACK stage)
#define USBDBG_MDD_EP0_STATUS_STAGE     0x00000001
// indicates PDD to start a RX/TX transfer
#define USBDBG_MDD_TRANSFER_START       0x00000002

// Flags PDD can pass back for transfer status    
//
#define USBDBG_PDD_TRANSFER_COMPLETE    0x00000001


// properties retrieved by UsbDbgRndisMdd from UsbDbgPdd
//
typedef enum USBDBG_PDD_IOCTL
{
    USBDBG_PDD_IOCTL_ENDPT_MAXPACKETSIZE,      //endpt maximum packet size
    USBDBG_PDD_IOCTL_SERIALNUM_STRING,         //usb serial number
    USBDBG_PDD_IOCTL_MANUFACTURER_STRING,      //usb manufacturer string
    USBDBG_PDD_IOCTL_PRODUCT_STRING            //usb product string
} USBDBG_PDD_IOCTL;

#pragma warning(disable : 4200)
typedef struct 
{
    UCHAR   ucbLength;
    UCHAR   ucbDescriptorType;
    WCHAR   pwcbString[];
} USB_STRING;
#pragma warning(default : 4200)


// structs for organizing a device descriptor
//
typedef struct USBDBG_INTERFACE_DESCRIPTOR
{
    USB_INTERFACE_DESCRIPTOR* pUsbInterfaceDescriptor;
    USB_ENDPOINT_DESCRIPTOR** ppUsbEndPtDescriptors;   //array of usb endpts
                                                       //descriptors

} USBDBG_INTERFACE_DESCRIPTOR;

typedef struct USBDBG_CONFIG_DESCRIPTOR
{
    USB_CONFIGURATION_DESCRIPTOR* pUsbConfigDescriptor;
    USBDBG_INTERFACE_DESCRIPTOR** ppUsbInterfaceDescriptors;//array of usb
                                                            //intrfc descriptors
    
} USBDBG_CONFIG_DESCRIPTOR;


typedef struct USBDBG_DEVICE_DESCRIPTOR
{
    USB_DEVICE_DESCRIPTOR* pUsbDeviceDescriptor;
    USBDBG_CONFIG_DESCRIPTOR** ppUsbConfigDescriptors;   //array of usb config
                                                         //descriptors

} USBDBG_DEVICE_DESCRIPTOR;


// Structure UsbDbgRndisMdd passes to UsbDbgPdd_Init
typedef struct USBDBG_MDD_INTERFACE_INFO
{
    DWORD               version;
} USBDBG_MDD_INTERFACE_INFO;


// Called to DeInit USBDBG_PDD
typedef void (*PFN_USBDBG_PDD_DEINIT) (
    );
    
// Called to attach to USB bus
typedef BOOL (*PFN_USBDBG_PDD_CONNECT) (
    USBDBG_DEVICE_DESCRIPTOR* pDeviceDesc
    );

// Called to detach from USB bus
typedef BOOL (*PFN_USBDBG_PDD_DISCONNECT) (
    );
    

// Called to get various properties from USBDBG_PDD
typedef BOOL (*PFN_USBDBG_PDD_IOCTL) (
    DWORD           ioControlCode,
    LPVOID          lpInBuffer,
    DWORD           cbInBufferSize,
    LPVOID          lpOutBuffer,
    DWORD           cbOutBufferSize,
    LPDWORD         lpBytesReturned
    );

// Called often to check if any interesting events occured
typedef DWORD (*PFN_USBDBG_PDD_EVENTHANDLER) (
    USBDBG_MSG* msg,
    BYTE* msgBuf
    );

// Called by UsbDbgRndisMdd to receive data
typedef DWORD (*PFN_USBDBG_PDD_RECVDATA) (
    DWORD epNum,
    PBYTE pBuffer,
    DWORD pcbBufLen,
    DWORD transferflags,
    DWORD* transferStatus
    );
    
// Called by UsbDbgRndisMdd to send data
typedef DWORD (*PFN_USBDBG_PDD_SENDDATA) (
    DWORD epNum,
    PBYTE pBuffer,
    DWORD cbBufLen,
    DWORD transferFlags,
    DWORD* transferStatus
    );

// Commands USBDBG_CMD_* sent by MDD
typedef DWORD (*PFN_USBDBG_PDD_SENDCMD) (
    USBDBG_CMD cmd,
    DWORD epNum,
    USBDBG_ENDPTDIR epDir
    );

// Called by UsbDbgRndisMdd when device suspends/resumes
typedef void (*PFN_USBDBG_PDD_SETPOWER) (
    BOOL fPowerOff
    );
    
// UsbDbgPdd must fill out this structure
typedef struct USBDBG_PDD_INTERFACE_INFO
{
    DWORD                version;

    PFN_USBDBG_PDD_DEINIT pfnDeinit;
    PFN_USBDBG_PDD_CONNECT pfnConnect;
    PFN_USBDBG_PDD_DISCONNECT pfnDisconnect;
    PFN_USBDBG_PDD_IOCTL pfnIoctl;
    PFN_USBDBG_PDD_EVENTHANDLER pfnEventHandler;
    PFN_USBDBG_PDD_RECVDATA pfnRecvData;
    PFN_USBDBG_PDD_SENDDATA pfnSendData;
    PFN_USBDBG_PDD_SENDCMD pfnSendCmd;
    PFN_USBDBG_PDD_SETPOWER pfnSetPower;
    
} USBDBG_PDD_INTERFACE_INFO;  


// defines for debug zones
#define USBDBG_ZONE_ERROR               0x00010000
#define USBDBG_ZONE_WARN                0x00020000
#define USBDBG_ZONE_INFO                0x00040000
#define USBDBG_ZONE_INIT                0x00080000
#define USBDBG_ZONE_FUNC                0x00100000
#define USBDBG_ZONE_VERBOSE             0x00200000
#define USBDBG_ZONE_SEND                0x00400000
#define USBDBG_ZONE_RECV                0x00800000
#define USBDBG_ZONE_DUMP_PKT            0x01000000
#define USBDBG_ZONE_SETUP_REQUEST       0x02000000

// defined by PDD
extern UINT32 g_UsbDbgZones;

// USBDBGMSG prints a messages if
// 1) the appropriate USBDBG_ZONE_* is turned ON
#define USBDBGMSG(zone, str) \
    ((g_UsbDbgZones & (zone)) ? (OALMSGS(1, str)): 0)
//    ((g_UsbDbgZones & (zone)) ? (OALMSGS(OAL_ETHER, str)): 0)

#ifdef __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人亚洲精品| 老司机精品视频导航| 精品国偷自产国产一区| 欧美视频在线不卡| 在线视频一区二区三| av一区二区不卡| 99久久国产免费看| 99精品视频在线观看| 成人av免费在线| 99国产精品久久久久久久久久久| 国产大陆精品国产| 99久久99久久综合| 色综合天天性综合| 欧美日韩国产高清一区二区| 欧美日韩视频在线一区二区| 日韩一区二区三区视频| 欧美tickling网站挠脚心| 精品播放一区二区| 国产欧美一区二区三区网站| 国产精品亲子伦对白| 中文字幕日韩av资源站| 有坂深雪av一区二区精品| 亚洲男人的天堂一区二区| 亚洲福利视频一区| 日韩二区三区在线观看| 久久99国产精品尤物| 国产凹凸在线观看一区二区| gogo大胆日本视频一区| 欧美唯美清纯偷拍| 久久无码av三级| 亚洲女同女同女同女同女同69| 亚洲电影一级黄| 韩国理伦片一区二区三区在线播放| 国产曰批免费观看久久久| 99r精品视频| 欧美一区二区三区在线观看| www日韩大片| 亚洲综合久久av| 国产精品一色哟哟哟| 在线视频你懂得一区| 精品福利av导航| 中文字幕日韩精品一区| 免费观看成人av| 色综合久久综合网欧美综合网| 日韩欧美国产综合| 伊人色综合久久天天人手人婷| 蜜臀久久99精品久久久画质超高清| 国产精品一二三区在线| 欧美日本韩国一区| 国产日本亚洲高清| 亚洲福利一区二区三区| 成人动漫一区二区三区| 欧美mv日韩mv亚洲| 午夜久久电影网| 99精品偷自拍| 国产亚洲精品超碰| 日韩中文欧美在线| 欧美在线一二三| 中文字幕在线一区| 国产一区二三区| 欧美一区二区在线免费播放| 亚洲精品一卡二卡| voyeur盗摄精品| 久久久不卡网国产精品一区| 日韩制服丝袜av| 欧美日韩久久一区| 亚洲一区二区三区三| 91视频免费看| 国产精品短视频| www.色精品| 日本一区二区三区久久久久久久久不 | 亚洲女同一区二区| 成人午夜免费av| 国产日韩欧美电影| 国产成人精品亚洲777人妖| 日韩色在线观看| 免费观看30秒视频久久| 欧美一级二级在线观看| 午夜精品一区在线观看| 欧美卡1卡2卡| 日韩在线观看一区二区| 91麻豆精品国产91久久久| 五月激情六月综合| 91精品午夜视频| 免费的成人av| 久久久久久影视| 国产成人av一区二区三区在线观看| 久久嫩草精品久久久久| 国产精品88av| 国产精品久久久久影院| 91原创在线视频| 亚洲一区二区三区视频在线播放 | 狠狠色丁香久久婷婷综| 精品少妇一区二区三区在线视频| 久久成人羞羞网站| 国产亚洲一区二区三区在线观看 | 樱桃国产成人精品视频| 在线免费观看日本欧美| 日本在线不卡一区| 久久新电视剧免费观看| 91蜜桃在线观看| 亚洲va欧美va人人爽| 精品捆绑美女sm三区| 丁香啪啪综合成人亚洲小说| 亚洲品质自拍视频| 91麻豆精品国产91久久久久久久久| 美女脱光内衣内裤视频久久网站| 精品福利一二区| 91久久免费观看| 日本欧美加勒比视频| 中文字幕二三区不卡| 日本高清不卡一区| 久88久久88久久久| 亚洲欧美偷拍卡通变态| 制服丝袜在线91| 国产成a人亚洲精品| 午夜视频一区在线观看| 国产日韩在线不卡| 欧美区视频在线观看| 成人午夜私人影院| 婷婷国产v国产偷v亚洲高清| 国产亚洲欧美一级| 欧美日韩不卡在线| 成人av网站在线观看免费| 日韩精品欧美成人高清一区二区| 国产午夜久久久久| 91精品啪在线观看国产60岁| 99国产一区二区三精品乱码| 久久疯狂做爰流白浆xx| 亚洲成人先锋电影| 日韩美女精品在线| 久久免费国产精品| 91麻豆精品国产91久久久久久| av不卡在线播放| 国产精品一区二区x88av| 婷婷成人综合网| 亚洲欧美日韩系列| 日本一二三四高清不卡| 亚洲精品一线二线三线| 欧美日韩中文字幕一区二区| 99久精品国产| 国产乱一区二区| 久久超级碰视频| 日韩av一区二区三区四区| 亚洲免费视频成人| 中文字幕在线不卡一区| 欧美韩国日本综合| 久久久国产午夜精品| 精品国产乱码久久久久久蜜臀| 在线播放91灌醉迷j高跟美女 | 国产女同性恋一区二区| 欧美精品一区二区三| 日韩一级大片在线观看| 欧美裸体bbwbbwbbw| 欧美性猛交xxxx黑人交| 在线观看日韩电影| 在线观看亚洲精品视频| 欧美性受xxxx黑人xyx性爽| 色琪琪一区二区三区亚洲区| 成人av小说网| 91麻豆国产在线观看| 91免费看视频| 欧美日韩中文国产| 欧美高清一级片在线| 欧美一区二区三区在线电影| 日韩女优制服丝袜电影| 日韩精品一区在线| 欧美精品一区二区三区视频| 精品久久国产97色综合| 久久精品一区四区| 国产人伦精品一区二区| 国产精品久久久久久亚洲伦| 椎名由奈av一区二区三区| 亚洲精品第1页| 五月婷婷久久丁香| 精品一区在线看| 国产精品亚洲视频| 一本一道久久a久久精品| 欧美日本精品一区二区三区| xnxx国产精品| 中文字幕亚洲在| 日韩国产一区二| 国产麻豆视频一区二区| 色综合久久中文字幕综合网 | 久久精品72免费观看| 国产成都精品91一区二区三| 色综合天天综合色综合av| 欧美精品在线一区二区| 久久久久久久性| 亚洲免费电影在线| 日本亚洲一区二区| 成人激情小说网站| 91精品在线一区二区| 国产欧美精品一区| 午夜国产不卡在线观看视频| 国产成人在线影院 | 日韩精品专区在线影院重磅| 国产精品五月天| 日韩av不卡一区二区| 91小宝寻花一区二区三区|