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

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

?? ezusbsys.h

?? 一個USB驅動程序
?? H
?? 第 1 頁 / 共 3 頁
字號:
{
   UCHAR    Index;
   USHORT   LanguageId;
} GET_STRING_DESCRIPTOR_IN, *PGET_STRING_DESCRIPTOR_IN;

typedef struct _EZUSB_DRIVER_VERSION
{
   WORD     MajorVersion;
   WORD     MinorVersion;
   WORD     BuildVersion;
} EZUSB_DRIVER_VERSION, *PEZUSB_DRIVER_VERSION;

#ifdef DRIVER

typedef struct _RING_BUFFER
{
   PUCHAR      inPtr;
   PUCHAR      outPtr;
   ULONG       totalSize;
   ULONG       currentSize;
   KSPIN_LOCK	spinLock;
   PUCHAR      buffer;
} RING_BUFFER, *PRING_BUFFER;

PRING_BUFFER
AllocRingBuffer(
   ULONG    Size
   );

VOID
FreeRingBuffer(
   PRING_BUFFER   ringBuffer
   );

ULONG
ReadRingBuffer(
   PRING_BUFFER   ringBuffer,
   PUCHAR         readBuffer,
   ULONG          numberOfBytesToRead
   );
   
ULONG
WriteRingBuffer(
   PRING_BUFFER   ringBuffer,
   PUCHAR         writeBuffer,
   ULONG          numberOfBytesToWrite
   );

typedef struct _EZUSB_FIRMWARE
{
   // tag contains a string to identify the start of the firmware
   // image in the driver binary.  Another utilty can then be used
   // to replace the firmware image inthe driver without requiring
   // a recompile
   UCHAR tag[10];
   ULONG size;
   UCHAR firmware[];
} EZUSB_FIRMWARE, *PEZUSB_FIRMWARE;

// 
// this is the default number of IRP's to queue for streaming ISO
// data.
//
#define DEFAULT_ISO_BUFFER_COUNT 2

//
// Default number of frames of ISO data transferred by a single ISO
// URB/IRP
//
#define DEFAULT_ISO_FRAMES_PER_BUFFER 10

typedef struct _ISO_STREAM_OBJECT ISO_STREAM_OBJECT, *PISO_STREAM_OBJECT;

typedef struct _ISO_TRANSFER_OBJECT
{
   ULONG Frame;
   PISO_STREAM_OBJECT StreamObject;
   PURB Urb;
   PIRP Irp;
   KEVENT Done;
} ISO_TRANSFER_OBJECT, *PISO_TRANSFER_OBJECT;

typedef struct _ISO_STREAM_OBJECT
{
   PDEVICE_OBJECT DeviceObject;
   ULONG PacketSize;
   ULONG NumPackets;
   PUSBD_PIPE_INFORMATION PipeInfo;
   PVOID TransferBuffer;
   ULONG TransferBufferLength;
   PVOID IsoDescriptorBuffer;
   ULONG FramesPerBuffer;
   ULONG BufferCount;
   ULONG PendingTransfers;
   PRING_BUFFER DataRingBuffer;
   PRING_BUFFER DescriptorRingBuffer;
   PISO_TRANSFER_OBJECT TransferObject;
} ISO_STREAM_OBJECT, *PISO_STREAM_OBJECT;


#define Ezusb_NAME_MAX  64




//
// This is an unused structure in this driver, but is provided here
// so when you extend the driver to deal with USB pipes, you may wish
// to use this structure as an example or model.
//
typedef struct _EZUSB_PIPE {
   ULONG Mode;
   ULONG Option;
   ULONG Param1;
   ULONG Param2;
   WCHAR Name[Ezusb_NAME_MAX];
   PUSBD_PIPE_INFORMATION PipeInfo;
} EZUSB_PIPE, *PEZUSB_PIPE;


/*
// The interface number on this device that this driver expects to use
// This would be in the bInterfaceNumber field of the Interface Descriptor, hence
// this device driver would need to know this value.
*/
#define SAMPLE_INTERFACE_NBR 0x00


//
// A structure representing the instance information associated with
// this particular device.
//
typedef struct _DEVICE_EXTENSION
{

   // physical device object
   PDEVICE_OBJECT PhysicalDeviceObject;        

   // Device object we call when submitting Urbs/Irps to the USB stack
   PDEVICE_OBJECT		StackDeviceObject;		

   // Indicates that we have recieved a STOP message
   BOOLEAN Stopped;

   // Indicates that we are enumerated and configured.  Used to hold
   // of requests until we are ready for them
   BOOLEAN Started;

   // Indicates the device needs to be cleaned up (ie., some configuration
   // has occurred and needs to be torn down).
   BOOLEAN NeedCleanup;

   // configuration handle for the configuration the
   // device is currently in
   USBD_CONFIGURATION_HANDLE ConfigurationHandle;

   // ptr to the USB device descriptor
   // for this device
   PUSB_DEVICE_DESCRIPTOR DeviceDescriptor;

   // we support up to one interface
   PUSBD_INTERFACE_INFORMATION Interface;

   // the number of device handles currently open to the device object.
   // Gets incremented by Create and decremented by Close
   ULONG                OpenHandles;

   // Name buffer for our named Functional device object link
   WCHAR DeviceLinkNameBuffer[Ezusb_NAME_MAX];

   // This member is used to store the URB status of the
   // most recently failed URB.  If a USB transfer fails, a caller
   // can use IOCTL_EZUSB_GET_LAST_ERROR to retrieve this value.
   // There's only room for one, so you better get it quick (or at
   // least before the next URB failure occurs).
   USBD_STATUS LastFailedUrbStatus;

   // use counter for the device.  Gets incremented when the driver receives
   // a request and gets decremented when a request s completed.
   LONG usage;

   // this ev gets set when it is ok to remove the device
	KEVENT evRemove;

   // TRUE if we're trying to remove this device
   BOOLEAN removing;

   BOOLEAN StopIsoStream;

   PRING_BUFFER DataRingBuffer;
   PRING_BUFFER DescriptorRingBuffer;

} DEVICE_EXTENSION, *PDEVICE_EXTENSION;


#if DBG

#define Ezusb_KdPrint(_x_) DbgPrint("Ezusb.SYS: "); \
                             DbgPrint _x_ ;
#define TRAP() DbgBreakPoint()
#else
#define Ezusb_KdPrint(_x_)
#define TRAP()
#endif


NTSTATUS
Ezusb_Dispatch(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP           Irp
    );

VOID
Ezusb_Unload(
    IN PDRIVER_OBJECT DriverObject
    );

NTSTATUS
Ezusb_StartDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
Ezusb_StopDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
Ezusb_RemoveDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
Ezusb_CallUSBD(
    IN PDEVICE_OBJECT DeviceObject,
    IN PURB Urb
    );

NTSTATUS
Ezusb_PnPAddDevice(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject
    );

NTSTATUS
Ezusb_CreateDeviceObject(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT *DeviceObject,
    LONG Instance
    );

NTSTATUS
Ezusb_ConfigureDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
Ezusb_Create(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
Ezusb_Close(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
Ezusb_Read_Write(
   IN  PDEVICE_OBJECT DeviceObject,
   IN  PIRP Irp
   );

NTSTATUS
Ezusb_ProcessIOCTL(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    );

NTSTATUS
Ezusb_SelectInterfaces(
    IN PDEVICE_OBJECT DeviceObject,
    IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
    IN PUSBD_INTERFACE_INFORMATION Interface
    );

NTSTATUS
Ezusb_ResetPipe(
   IN PDEVICE_OBJECT DeviceObject,
   IN ULONG PipeNum
   );

NTSTATUS
Ezusb_AbortPipe(
    IN PDEVICE_OBJECT DeviceObject,
    IN USBD_PIPE_HANDLE PipeHandle
    );

ULONG
Ezusb_GetCurrentFrameNumber(
    IN PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
Ezusb_Read_Write_Direct(
    IN  PDEVICE_OBJECT DeviceObject,
    IN  PIRP Irp,
    IN  BOOLEAN Read
    );

ULONG
Ezusb_DownloadTest(
    IN PDEVICE_OBJECT DeviceObject,
    IN PVENDOR_REQUEST_IN pVendorRequest
    );

NTSTATUS
Ezusb_ResetParentPort(
    IN IN PDEVICE_OBJECT DeviceObject
    );

VOID
Ezusb_Cleanup(
    PDEVICE_OBJECT DeviceObject
    );

ULONG
Ezusb_GetDescriptor(
    IN PDEVICE_OBJECT fdo,
    PVOID             DescriptorBuffer,
    ULONG             BufferLength,
    UCHAR             DescriptorType
    );

ULONG
Ezusb_GetDeviceDescriptor(
    IN PDEVICE_OBJECT DeviceObject,
    PVOID             pvOutputBuffer
    );

ULONG
Ezusb_GetConfigDescriptor(
    IN PDEVICE_OBJECT DeviceObject,
    PVOID             pvOutputBuffer,
    ULONG             ulngth
    );

ULONG
Ezusb_VendorRequest(
    IN PDEVICE_OBJECT DeviceObject,
    PVENDOR_REQUEST_IN pVendorRequest
    );

ULONG
Ezusb_GetCurrentConfig(
    IN PDEVICE_OBJECT DeviceObject,
    IN PVENDOR_REQUEST_IN pVendorRequest
    );

ULONG
Ezusb_GetCurrentInterface(
    IN PDEVICE_OBJECT DeviceObject,
    IN PVENDOR_REQUEST_IN pVendorRequest
    );

PUSB_CONFIGURATION_DESCRIPTOR
GetConfigDescriptor(
    IN PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
ConfigureDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
SetInterface(
   IN PDEVICE_OBJECT DeviceObject,
   IN UCHAR InterfaceNumber,
   IN UCHAR AlternateSetting
   );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av午夜精品一区二区三区| 欧美成人高清电影在线| 日韩一区二区免费在线观看| 国产精品污污网站在线观看| 亚洲成人在线观看视频| 不卡的av网站| 欧美精品一区二区在线观看| 丝袜亚洲另类丝袜在线| 9l国产精品久久久久麻豆| 日韩欧美一二三区| 亚洲图片欧美色图| www.日韩在线| 久久久久久99久久久精品网站| 亚洲成人av一区二区| 99久久久无码国产精品| 久久免费美女视频| 捆绑调教一区二区三区| 欧美日韩一本到| 一区二区三区日韩在线观看| 丁香桃色午夜亚洲一区二区三区| 91精品久久久久久久99蜜桃| 夜夜揉揉日日人人青青一国产精品| 成人激情图片网| 国产精品国产自产拍高清av王其| 激情小说欧美图片| 欧美mv日韩mv国产网站| 免费观看在线色综合| 这里只有精品电影| 日韩精品色哟哟| 555www色欧美视频| 日韩电影在线观看电影| 欧美顶级少妇做爰| 日韩国产欧美三级| 欧美一二三区在线观看| 免费在线观看视频一区| 日韩美女一区二区三区四区| 免费亚洲电影在线| 亚洲精品一区二区精华| 国产成人av电影在线| 国产亚洲1区2区3区| 国产成人免费在线观看不卡| 久久精品欧美一区二区三区不卡| 国产一区二区看久久| 欧美国产一区在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 99re视频精品| 国产精品麻豆视频| 色综合久久精品| 日韩精品一级中文字幕精品视频免费观看 | 天堂精品中文字幕在线| 日韩免费性生活视频播放| 国产精品一区二区你懂的| 亚洲国产成人私人影院tom| 99久久伊人网影院| 处破女av一区二区| 亚洲日韩欧美一区二区在线| 欧美优质美女网站| 日韩av不卡一区二区| 26uuu亚洲婷婷狠狠天堂| 成人自拍视频在线观看| 亚洲影视在线观看| 日韩欧美成人激情| 不卡av在线免费观看| 亚洲国产cao| 久久久91精品国产一区二区三区| 成人av免费在线播放| 亚洲一线二线三线视频| 欧美第一区第二区| 色婷婷av一区| 狠狠狠色丁香婷婷综合激情| 国产精品青草久久| 欧美猛男男办公室激情| 国模一区二区三区白浆| 一区二区三区中文字幕精品精品| 欧美男男青年gay1069videost| 国产一区二区三区不卡在线观看| 亚洲激情六月丁香| 久久免费偷拍视频| 欧美老女人第四色| 99国产精品久久久久久久久久| 日韩精品色哟哟| 亚洲黄色小说网站| 久久精品欧美日韩精品| 欧美一区二区三区不卡| 91日韩精品一区| 黄页网站大全一区二区| 亚洲成人自拍网| 国产精品传媒视频| 精品国产91亚洲一区二区三区婷婷| 99riav一区二区三区| 精品一区二区三区免费毛片爱| 一区二区在线免费| 国产精品丝袜91| 26uuu另类欧美亚洲曰本| 欧美日韩综合色| 色哟哟国产精品| 不卡的av中国片| 懂色av一区二区在线播放| 日韩福利电影在线观看| 国产成人欧美日韩在线电影| 麻豆中文一区二区| 香蕉久久夜色精品国产使用方法| 成人欧美一区二区三区视频网页| 精品少妇一区二区| 欧美一区二区三区人| 欧美日韩一区精品| 欧美亚洲国产一区在线观看网站| 99热精品一区二区| aaa欧美大片| 91麻豆免费在线观看| 成人国产精品免费观看视频| 国产不卡视频在线观看| 国产丶欧美丶日本不卡视频| 久久国产尿小便嘘嘘尿| 久久国产精品无码网站| 久久成人av少妇免费| 精品一区二区三区久久久| 美女看a上一区| 裸体歌舞表演一区二区| 韩国成人在线视频| 国产一区二区剧情av在线| 国产在线精品一区二区| 国产精品18久久久久久vr| 国产做a爰片久久毛片| 国产精品正在播放| 成人app网站| 91国产丝袜在线播放| 欧美性生交片4| 欧美精品免费视频| 欧美成人r级一区二区三区| 久久视频一区二区| 亚洲国产经典视频| 亚洲资源在线观看| 日韩精品成人一区二区三区| 蓝色福利精品导航| 91精品免费观看| 2024国产精品视频| 国产精品久久精品日日| 亚洲黄色录像片| 蜜臀av性久久久久蜜臀aⅴ流畅| 美女视频一区在线观看| 国产一区二区三区av电影| 波多野结衣在线一区| 在线免费不卡视频| 日韩免费高清电影| ●精品国产综合乱码久久久久 | 亚洲国产另类av| 日本欧美一区二区三区| 国产精品一区二区在线观看不卡 | 欧美三级欧美一级| 精品国产网站在线观看| 国产精品久久久一本精品| 亚洲成av人片在线观看| 国产一区二区三区在线观看免费视频| 成人国产精品免费网站| 欧美一区永久视频免费观看| 亚洲国产精品黑人久久久| 亚洲高清免费观看高清完整版在线观看| 久国产精品韩国三级视频| 99国产精品久久久久久久久久| 91精品国产一区二区三区香蕉| 日本一区二区三区高清不卡| 午夜精品福利一区二区三区av| 国产精品自产自拍| 欧美丰满美乳xxx高潮www| 国产精品乱码久久久久久| 日韩激情在线观看| 99久久伊人久久99| 午夜精品福利一区二区三区蜜桃| 国产成人日日夜夜| 欧美一区二区久久久| 曰韩精品一区二区| 成人免费视频免费观看| 日韩午夜中文字幕| 夜夜夜精品看看| av不卡在线播放| 国产日韩影视精品| 另类小说综合欧美亚洲| 欧美日韩一级片在线观看| 中文字幕亚洲不卡| 国产精品一区在线| 欧美成人vr18sexvr| 日本欧美大码aⅴ在线播放| 色94色欧美sute亚洲线路一ni| 国产欧美一区二区精品秋霞影院| 美女任你摸久久| 日韩三级在线免费观看| 午夜精品久久久久久久99水蜜桃 | 黑人巨大精品欧美黑白配亚洲| 欧美日韩中文另类| 亚洲麻豆国产自偷在线| 99久久精品国产麻豆演员表| 久久精品欧美一区二区三区不卡| 精品一区二区在线观看| 5858s免费视频成人| 日韩国产精品大片| 91超碰这里只有精品国产| 亚洲h在线观看| 在线视频国内自拍亚洲视频| 一区二区三区成人|