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

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

?? blk82930.h

?? s3c2440開發板的usb驅動程序經過測試完全適用
?? H
字號:
/*++

Copyright (c) 1997-1998  Microsoft Corporation

Module Name:

    Blk82930.h

Abstract:

	Kernel mode definitions and function prototypes

Environment:

    Kernel mode

Notes:

  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  PURPOSE.

  Copyright (c) 1997-1998 Microsoft Corporation.  All Rights Reserved.

Revision History:

    11/18/97 : created
	12/05/01:purnnamu: BULKUSB_MAX_TRANSFER_SIZE is changed to increase the transfer rate
--*/
#ifndef BLK829_INCD
#define BLK829_INCD

#include "BusbDbg.h"

// the size of the transfer buffer on your test board or device
#define BULKUSB_TEST_BOARD_TRANSFER_BUFFER_SIZE (64 *1024 )

//#define BULKUSB_MAX_TRANSFER_SIZE	256
//#define BULKUSB_MAX_TRANSFER_SIZE	1024	
#define BULKUSB_MAX_TRANSFER_SIZE	832	
	//purnnamu:12/05/01:
	//If this is 1024, maximum 16(1024/64) bulk packits can be transferred in 1ms frame duration.
    //purnnamu:03/28/2002:
    //In S3C2410X, the 32B packit is used. The 1ms can accommodate 26 packits(832 Bytes). 
// used to track driver-generated io irps for staged read/write processing
typedef struct _BULKUSB_RW_CONTEXT {
    PURB Urb;
    PDEVICE_OBJECT DeviceObject;
    PIRP  Irp;
    PMDL  Mdl;
} BULKUSB_RW_CONTEXT, *PBULKUSB_RW_CONTEXT;


// used to track information on pipes in use;
//  currently just to flag if opened or closed
typedef struct BULKUSB_PIPEINFO {

    BOOLEAN fPipeOpened;

} BULKUSB_PIPEINFO, *PBULKUSB_PIPEINFO;





//
// A structure representing the instance information associated with
// this particular device.
//

typedef struct _DEVICE_EXTENSION {

    // Device object we call when submitting Urbs
    PDEVICE_OBJECT TopOfStackDeviceObject;

	// The bus driver object
    PDEVICE_OBJECT PhysicalDeviceObject;

    DEVICE_POWER_STATE CurrentDevicePowerState;

    // USB configuration handle and ptr for the configuration the
    // device is currently in
    USBD_CONFIGURATION_HANDLE UsbConfigurationHandle;
	PUSB_CONFIGURATION_DESCRIPTOR UsbConfigurationDescriptor;


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

    // we support one interface
    // this is a copy of the info structure
    // returned from select_configuration or
    // select_interface
    PUSBD_INTERFACE_INFORMATION UsbInterface;

	//Bus drivers set the appropriate values in this structure in response
	//to an IRP_MN_QUERY_CAPABILITIES IRP. Function and filter drivers might
	//alter the capabilities set by the bus driver.
    DEVICE_CAPABILITIES DeviceCapabilities;

	// used to save the currently-being-handled system-requested power irp request
    PIRP PowerIrp;

	// used to save base Irp ( user-originated via IOCTL ) of staged read/write request
	PIRP BaseIrp;

	// used to save  URB of short, non-staged read/write requests
	PURB BaseUrb;

	// count of self-staged irps pending
    ULONG StagedPendingIrpCount;

	// count of self-staged bytes read or written so far
    ULONG StagedBytesTransferred;

	// set when PendingIoCount goes to 0; flags device can be removed
    KEVENT RemoveEvent;

	// set when BulkUsb_AsyncReadWrite_Complete() finishes or cancels last staged io irp
    KEVENT StagingDoneEvent;

	// set when PendingIoCount goes to 1 ( 1st increment was on add device )
	// this indicates no IO requests outstanding, either user, system, or self-staged
    KEVENT NoPendingIoEvent;

	// set to signal driver-generated power request is finished
    KEVENT SelfRequestedPowerIrpEvent;

	// spinlock used to protect inc/dec iocount logic
	KSPIN_LOCK	IoCountSpinLock;

	// incremented when device is added and any IO request is received;
	// decremented when any io request is completed or passed on, and when device is removed
    ULONG PendingIoCount;

	// count of open pipes
	ULONG OpenPipeCount;

    // ptr to array of structs to track pipeinfo;
    //  in this basic sample it's only used to track if open/closed;
    PBULKUSB_PIPEINFO PipeInfo;

	// save ptr to array of info on self-generated IRPS for staged read/writes;
	//  will allocate this separately
	PBULKUSB_RW_CONTEXT PendingIoIrps;

    // Name buffer for our named Functional device object link
	// The name is generated based on the driver's class GUID
    WCHAR DeviceLinkNameBuffer[ MAXIMUM_FILENAME_LENGTH ];  // MAXIMUM_FILENAME_LENGTH defined in wdm.h

	//flag set when processing IRP_MN_REMOVE_DEVICE
    BOOLEAN DeviceRemoved;

 	// flag set when driver has answered success to IRP_MN_QUERY_REMOVE_DEVICE
    BOOLEAN RemoveDeviceRequested;

	// flag set when driver has answered success to IRP_MN_QUERY_STOP_DEVICE
    BOOLEAN StopDeviceRequested;

	// flag set when device has been successfully started
	BOOLEAN DeviceStarted;

    // flag set when IRP_MN_WAIT_WAKE is received and we're in a power state
    // where we can signal a wait
    BOOLEAN EnabledForWakeup;

	// used to flag that we're currently handling a self-generated power request
    BOOLEAN SelfPowerIrp;

	// default power state to power down to on self-suspend 
	ULONG PowerDownLevel; 

	// default maximum transfer per staged irp size		
	ULONG MaximumTransferSize;  

    // spinlock used to protect test of deviceExtension->BaseIrp in
    // BulkUsb_StagedReadWrite()
    KSPIN_LOCK FastCompleteSpinlock;

} DEVICE_EXTENSION, *PDEVICE_EXTENSION;


// function prototypes

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

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

VOID
BulkUsb_Unload(
    IN PDRIVER_OBJECT DriverObject
    );

NTSTATUS
BulkUsb_StartDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
BulkUsb_StopDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
BulkUsb_RemoveDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

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

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

NTSTATUS
BulkUsb_CreateDeviceObject(
    IN PDRIVER_OBJECT DriverObject,
    IN PDEVICE_OBJECT PhysicalDeviceObject,
    IN PDEVICE_OBJECT *DeviceObject
    );

NTSTATUS
BulkUsb_ConfigureDevice(
    IN  PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
BulkUsb_IrpCompletionRoutine(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );

NTSTATUS
BulkUsb_PoRequestCompletion(
    IN PDEVICE_OBJECT       DeviceObject,
    IN UCHAR                MinorFunction,
    IN POWER_STATE          PowerState,
    IN PVOID                Context,
    IN PIO_STATUS_BLOCK     IoStatus
    );

NTSTATUS
BulkUsb_PoSelfRequestCompletion(
    IN PDEVICE_OBJECT       DeviceObject,
    IN UCHAR                MinorFunction,
    IN POWER_STATE          PowerState,
    IN PVOID                Context,
    IN PIO_STATUS_BLOCK     IoStatus
    );

PURB
BulkUsb_BuildAsyncRequest(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PUSBD_PIPE_INFORMATION PipeHandle,
    IN BOOLEAN Read
    );

NTSTATUS
BulkUsb_GetPortStatus(
    IN PDEVICE_OBJECT DeviceObject,
    IN PULONG PortStatus
    );

NTSTATUS
BulkUsb_ResetParentPort(
    IN IN PDEVICE_OBJECT DeviceObject
    );

NTSTATUS
BulkUsb_SelfRequestPowerIrp(
    IN PDEVICE_OBJECT DeviceObject,
    IN POWER_STATE PowerState
    );

BOOLEAN
BulkUsb_SetDevicePowerState(
    IN PDEVICE_OBJECT DeviceObject,
    IN DEVICE_POWER_STATE DeviceState
    );

NTSTATUS
BulkUsb_AsyncReadWrite_Complete(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );

NTSTATUS
BulkUsb_SimpleReadWrite_Complete(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );


NTSTATUS
BulkUsb_PowerIrp_Complete(
    IN PDEVICE_OBJECT NullDeviceObject,
    IN PIRP Irp,
    IN PVOID Context
    );

NTSTATUS
BulkUsb_QueryCapabilities(
    IN PDEVICE_OBJECT PdoDeviceObject,
    IN PDEVICE_CAPABILITIES DeviceCapabilities
    );


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

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


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


NTSTATUS
BulkUsb_AbortPipes(
    IN PDEVICE_OBJECT DeviceObject
    );


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

NTSTATUS
BulkUsb_SelectInterface(
    IN PDEVICE_OBJECT DeviceObject,
    IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor
    );



NTSTATUS
BulkUsb_ResetDevice(
    IN PDEVICE_OBJECT DeviceObject
    );

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

NTSTATUS
BulkUsb_ResetPipe(
    IN PDEVICE_OBJECT DeviceObject,
    IN PUSBD_PIPE_INFORMATION PipeInfo
    );


VOID
BulkUsb_IncrementIoCount(
    IN PDEVICE_OBJECT DeviceObject
    );

LONG
BulkUsb_DecrementIoCount(
    IN PDEVICE_OBJECT DeviceObject
    );   


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


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

NTSTATUS
BulkUsb_SelfSuspendOrActivate(
    IN PDEVICE_OBJECT DeviceObject,
	IN BOOLEAN fSuspend
    );

NTSTATUS 
BulkUsb_SymbolicLink(
    IN PDEVICE_OBJECT DeviceObject, 
	IN OUT PUNICODE_STRING deviceLinkUnicodeString
    );


BOOLEAN
BulkUsb_CancelPendingIo(
    IN PDEVICE_OBJECT DeviceObject
    );

BOOLEAN
BulkUsb_CanAcceptIoRequests(
    IN PDEVICE_OBJECT DeviceObject
    );

PBULKUSB_PIPEINFO BulkUsb_PipeWithName( 
    IN PDEVICE_OBJECT DeviceObject,
    IN PUNICODE_STRING FileName
);

#endif // already included







?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩影视精品| 91在线观看美女| 欧美丝袜丝nylons| 久久精品欧美日韩精品| 亚洲成va人在线观看| 91原创在线视频| 夜色激情一区二区| 欧美久久久久中文字幕| 日韩精品每日更新| 欧美日韩色一区| 日韩av在线播放中文字幕| 欧美丝袜丝交足nylons图片| 丝袜美腿亚洲综合| 欧美一区二区精美| 国产精品一二三四区| 中文字幕在线不卡国产视频| 欧美福利视频导航| 成人97人人超碰人人99| 久久国产人妖系列| 欧美电视剧免费观看| av网站免费线看精品| 五月天精品一区二区三区| 国产亚洲综合色| 欧美精品1区2区3区| yourporn久久国产精品| 蜜臂av日日欢夜夜爽一区| 国产精品久久久久aaaa| 欧美一区二区三区免费视频| 成人综合婷婷国产精品久久 | 国内精品国产三级国产a久久| 国产欧美精品区一区二区三区 | 91精品国产高清一区二区三区| 经典三级一区二区| 亚洲电影视频在线| 亚洲欧洲国产日韩| 国产色产综合色产在线视频| 欧美精品一级二级三级| 日本电影亚洲天堂一区| 99久久精品国产导航| 成人动漫一区二区在线| 国产精品白丝jk白祙喷水网站 | 奇米影视一区二区三区小说| 亚洲精品亚洲人成人网在线播放| 国产欧美一区二区精品仙草咪| 欧美一区二区三区日韩| 中日韩av电影| 中文字幕亚洲区| 亚洲视频在线一区观看| 亚洲人成人一区二区在线观看| 国产精品网站在线播放| 1024成人网色www| 1000部国产精品成人观看| 亚洲欧美国产高清| 三级欧美在线一区| 亚洲成av人片观看| 久久er99精品| 蜜臀久久99精品久久久画质超高清 | 国产综合色在线| 亚洲影院在线观看| 久久精品视频免费观看| 欧美性受极品xxxx喷水| 懂色av中文一区二区三区| 国内成+人亚洲+欧美+综合在线| 久久精品国产一区二区三| 美女一区二区三区在线观看| 国产在线精品视频| 成人av电影在线播放| 成人福利视频在线看| 色综合久久久久综合体桃花网| 91官网在线观看| 日韩一区二区在线观看| 国产精品久久久久影院亚瑟| 亚洲国产日韩精品| 国产成人午夜99999| 91久久线看在观草草青青| 欧美日韩亚洲另类| 欧美不卡视频一区| 国产女人aaa级久久久级 | 在线不卡一区二区| 国产精品天天摸av网| 亚洲一区在线视频| 国产成人av在线影院| 欧美日韩www| 国产精品高潮久久久久无| 日本特黄久久久高潮| 国产福利一区二区| 4438x亚洲最大成人网| 亚洲欧美一区二区在线观看| 久色婷婷小香蕉久久| 在线亚洲一区观看| 国产视频一区二区在线观看| 午夜精品爽啪视频| 日本韩国一区二区| 亚洲欧美视频在线观看| 成人午夜免费电影| 精品sm捆绑视频| 日韩中文字幕1| 7777精品久久久大香线蕉| 亚洲精品国产a久久久久久| 国产成人免费视| 久久久久久一二三区| 激情五月婷婷综合网| 欧美日韩一二区| 一区二区三区高清| 91激情在线视频| 国产精品久久久久婷婷| 成人av网站免费| 国产精品国产三级国产普通话蜜臀 | 狠狠色丁香久久婷婷综合_中| 日韩一区二区三区免费看 | 美女高潮久久久| 精品国产乱子伦一区| 捆绑调教一区二区三区| 91.麻豆视频| 美女性感视频久久| 国产三级精品三级在线专区| 不卡的av在线| 日本va欧美va欧美va精品| 欧美精品一区二区高清在线观看| 青青草视频一区| 中文字幕精品一区二区精品绿巨人| 91片黄在线观看| 韩国av一区二区| 伊人夜夜躁av伊人久久| 91精品中文字幕一区二区三区| 日本美女一区二区| 亚洲欧美一区二区三区国产精品| 欧美最新大片在线看| 热久久国产精品| 亚洲一区在线免费观看| 精品国产乱码久久久久久久久 | 久久成人久久鬼色| 亚洲免费观看高清完整版在线| 欧美不卡一区二区三区四区| 欧美亚洲愉拍一区二区| 久久精品二区亚洲w码| 亚洲人一二三区| 欧美国产一区二区在线观看| 欧美精品自拍偷拍动漫精品| 99v久久综合狠狠综合久久| 国产成人高清在线| 蜜臀av性久久久久蜜臀av麻豆| 成人欧美一区二区三区小说| 欧美一区二区三区在线观看视频| 国产mv日韩mv欧美| 日韩在线卡一卡二| 午夜精品视频一区| 日欧美一区二区| 日本午夜精品视频在线观看| 亚洲成人激情av| 婷婷综合久久一区二区三区| 亚洲欧美aⅴ...| 亚洲天堂2016| 最近日韩中文字幕| 亚洲观看高清完整版在线观看| 亚洲一区二区三区免费视频| 亚洲一二三级电影| 污片在线观看一区二区| 亚洲图片一区二区| 免费成人深夜小野草| 国产中文字幕精品| 色天天综合久久久久综合片| 色94色欧美sute亚洲线路二| 国产精品正在播放| 一本色道久久综合亚洲aⅴ蜜桃| 成人免费视频免费观看| 欧美四级电影在线观看| 欧美日韩亚洲综合一区二区三区| 欧美一级专区免费大片| 国产日韩精品一区二区三区 | 麻豆国产精品777777在线| 国产**成人网毛片九色| 99久久亚洲一区二区三区青草| 欧美猛男男办公室激情| 自拍偷拍国产精品| 国产麻豆午夜三级精品| 色偷偷久久人人79超碰人人澡| 欧美一区二区三区免费| 一区二区三区加勒比av| 国产在线视频一区二区| 欧美三级乱人伦电影| 国产精品久线在线观看| 麻豆精品在线看| 欧美日韩国产天堂| 国产精品久久一级| 国产a久久麻豆| 欧美成va人片在线观看| 亚洲成av人片在线| 一本大道久久a久久综合婷婷| www激情久久| 久久成人麻豆午夜电影| 7777精品伊人久久久大香线蕉的| 亚洲美女少妇撒尿| 一本色道久久综合精品竹菊| 亚洲欧美日韩在线| 懂色av噜噜一区二区三区av| 久久麻豆一区二区| 国产成人在线色| 亚洲欧美国产高清| 欧洲国内综合视频|