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

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

?? intusb.h

?? 在PC上通過USB與C8051通信
?? H
字號:
/*++


Module Name:

    intusb.h

Abstract:

Environment:

    Kernel mode

Notes:


--*/

#include <initguid.h>
#include <wdm.h>
#include <wmilib.h>
#include <wmistr.h>
#include "usbdi.h"
#include "usbdlib.h"
#include "usbioctl.h"

// Remove the comment from the following line in order to build a version of
// CygInt that works in Windows 98. 
// #define WIN98DRIVER

#ifndef _INTUSB_H
#define _INTUSB_H

#define INTTAG (ULONG) 'KluB'
#define DRIVERNAME "Cygnal Int"				// for use in messages

#undef ExAllocatePool
#define ExAllocatePool(type, size) \
    ExAllocatePoolWithTag(type, size, INTTAG);

#if DBG

#define IntUsb_DbgPrint(level, _x_) \
            if((level) <= DebugLevel) { \
                DbgPrint _x_; \
            }

#else

#define IntUsb_DbgPrint(level, _x_)

#endif

typedef struct _GLOBALS {

    UNICODE_STRING IntUsb_RegistryPath;

} GLOBALS;

#define IDLE_INTERVAL 5000


typedef enum _DEVSTATE {

    NotStarted,         // not started
    Stopped,            // device stopped
    Working,            // started and working
    PendingStop,        // stop pending
    PendingRemove,      // remove pending
    SurpriseRemoved,    // removed by surprise
    Removed             // removed

} DEVSTATE;

typedef enum _QUEUE_STATE {

    HoldRequests,       // device is not started yet
    AllowRequests,      // device is ready to process
    FailRequests        // fail both existing and queued up requests

} QUEUE_STATE;

typedef enum _WDM_VERSION {

    WinXpOrBetter,
    Win2kOrBetter,
    WinMeOrBetter,
    Win98OrBetter

} WDM_VERSION;

#define INITIALIZE_PNP_STATE(_Data_)    \
        (_Data_)->DeviceState =  NotStarted;\
        (_Data_)->PrevDevState = NotStarted;

#define SET_NEW_PNP_STATE(_Data_, _state_) \
        (_Data_)->PrevDevState =  (_Data_)->DeviceState;\
        (_Data_)->DeviceState = (_state_);

#define RESTORE_PREVIOUS_PNP_STATE(_Data_)   \
        (_Data_)->DeviceState =   (_Data_)->PrevDevState;


#define INTUSB_MAX_TRANSFER_SIZE   256
#define INTUSB_TEST_BOARD_TRANSFER_BUFFER_SIZE (8 )

//
// registry path used for parameters 
// global to all instances of the driver
//

#define INTUSB_REGISTRY_PARAMETERS_PATH  \
	L"\\REGISTRY\\Machine\\System\\CurrentControlSet\\SERVICES\\INTUSB\\Parameters"


typedef struct _INTUSB_PIPE_CONTEXT {

    BOOLEAN PipeOpen;

} INTUSB_PIPE_CONTEXT, *PINTUSB_PIPE_CONTEXT;


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

typedef struct _DEVICE_EXTENSION {

    // Functional Device Object
    PDEVICE_OBJECT FunctionalDeviceObject;

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

    // The bus driver object
    PDEVICE_OBJECT PhysicalDeviceObject;

    // Name buffer for our named Functional device object link
    // The name is generated based on the driver's class GUID
    UNICODE_STRING InterfaceName;

    // 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;

    // Configuration Descriptor
    PUSB_CONFIGURATION_DESCRIPTOR UsbConfigurationDescriptor;

    // Interface Information structure
    PUSBD_INTERFACE_INFORMATION UsbInterface;

    // Pipe context for the intusb driver
    PINTUSB_PIPE_CONTEXT PipeContext;

    // current state of device
    DEVSTATE DeviceState;

    // state prior to removal query
    DEVSTATE PrevDevState;

    // obtain and hold this lock while changing the device state,
    // the queue state and while processing the queue.
    KSPIN_LOCK DevStateLock;

    // current system power state
    SYSTEM_POWER_STATE SysPower;

    // current device power state
    DEVICE_POWER_STATE DevPower;

    // Pending I/O queue state
    QUEUE_STATE QueueState;

    // Pending I/O queue
    LIST_ENTRY NewRequestsQueue;

    // I/O Queue Lock
    KSPIN_LOCK QueueLock;

    KEVENT RemoveEvent;

    KEVENT StopEvent;
    
    ULONG OutStandingIO;

    KSPIN_LOCK IOCountLock;

    // selective suspend variables

    LONG SSEnable;

    LONG SSRegistryEnable;

    PUSB_IDLE_CALLBACK_INFO IdleCallbackInfo;
	
    PIRP PendingIdleIrp;
	
    LONG IdleReqPend;

    LONG FreeIdleIrpCount;

    KSPIN_LOCK IdleReqStateLock;

    KEVENT NoIdleReqPendEvent;

    // default power state to power down to on self-susped
    ULONG PowerDownLevel;
    
    // remote wakeup variables
    PIRP WaitWakeIrp;

    LONG FlagWWCancel;

    LONG FlagWWOutstanding;

    LONG WaitWakeEnable;

    // open handle count
    LONG OpenHandleCount;

    // selective suspend model uses timers, dpcs and work item.
    KTIMER Timer;

    KDPC DeferredProcCall;

    // This event is cleared when a DPC/Work Item is queued.
    // and signaled when the work-item completes.
    // This is essential to prevent the driver from unloading
    // while we have DPC or work-item queued up.
    KEVENT NoDpcWorkItemPendingEvent;

    // WMI information
    WMILIB_CONTEXT WmiLibInfo;

    // WDM version
    WDM_VERSION WdmVersion;

	PIRP InterruptIrp;						// the IOCTL that's waiting for an interrupt
	PIRP PollingIrpIN;						// IRP used to poll for interrupts
	PURB PollingUrbIN;						// URB used to poll for interrupts
	KSPIN_LOCK polllock;					// lock for managing polling IRP
	BOOLEAN pollpending;					// polling irp is pending
	IO_REMOVE_LOCK RemoveLock;				// removal control locking structure
	USBD_PIPE_HANDLE hintpipeIN;
	USBD_PIPE_HANDLE hintpipeOUT;
	UCHAR intdataIN[8];						// interrupt data
	LONG numintsIN;							// number of pending interrupts
	PVOID powercontext;						// context value to use in "save/restore" notification

	LIST_ENTRY Pending_IOCTL_READINT_List;			// list of asynchronous IOCTLs
	KSPIN_LOCK Cachelock;					// lock for managing the IO control cache
	
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;


typedef struct _IRP_COMPLETION_CONTEXT {

    PDEVICE_EXTENSION DeviceExtension;

    PKEVENT Event;

} IRP_COMPLETION_CONTEXT, *PIRP_COMPLETION_CONTEXT;

extern GLOBALS Globals;
extern ULONG DebugLevel;


NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT  DriverObject,
    IN PUNICODE_STRING UniRegistryPath
    );

VOID
IntUsb_DriverUnload(
    IN PDRIVER_OBJECT DriverObject
    );

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

PIO_WORKITEM AllocateWorkItem(PDEVICE_OBJECT DeviceObject);
VOID FreeWorkItem(PIO_WORKITEM item);
VOID QueueWorkItem(PIO_WORKITEM pIOWorkItem, PIO_WORKITEM_ROUTINE Routine, WORK_QUEUE_TYPE QueueType, PVOID Context);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品中文字幕一区二区三区| 国产精品成人在线观看| 国产真实乱对白精彩久久| 久久久www免费人成精品| 国产成人在线色| 国产精品护士白丝一区av| 色综合一区二区三区| 午夜精品福利在线| 精品国产91乱码一区二区三区| 国产精品18久久久久久vr| 国产精品久久三| 欧美性色黄大片| 麻豆国产精品一区二区三区 | 伊人色综合久久天天人手人婷| 91国偷自产一区二区开放时间 | 欧美日韩精品一区二区| 蜜桃久久精品一区二区| 国产欧美视频一区二区三区| 99re视频这里只有精品| 亚洲成人动漫av| 久久婷婷成人综合色| aaa国产一区| 日日摸夜夜添夜夜添精品视频 | 国产三级精品在线| 91福利精品视频| 蜜桃精品在线观看| 亚洲国产精品成人综合| 日本道在线观看一区二区| 久久精品国产免费| 18欧美亚洲精品| 欧美一区二区不卡视频| 成人免费视频国产在线观看| 亚洲国产成人91porn| 久久综合精品国产一区二区三区| av网站免费线看精品| 日韩中文字幕亚洲一区二区va在线 | 555www色欧美视频| 国产精品亚洲成人| 亚洲成国产人片在线观看| 久久久欧美精品sm网站| 欧美中文字幕一二三区视频| 国内精品视频一区二区三区八戒 | 视频一区二区国产| 国产精品久久久久久久久免费樱桃 | 亚洲免费观看高清在线观看| 91精品国产综合久久精品| 精品一区二区三区在线播放| 国产精品久久久久国产精品日日| 欧美日韩中文字幕一区二区| 韩国三级中文字幕hd久久精品| 国产精品免费av| 欧美精品久久99久久在免费线| 精品一区二区三区不卡| 亚洲欧美日本韩国| 精品人在线二区三区| 日本不卡一区二区三区高清视频| 国产精品久久久久久久岛一牛影视 | 久久精品国产亚洲aⅴ| 国产精品丝袜黑色高跟| 欧美日韩在线免费视频| 国产精品自拍一区| 亚洲精品菠萝久久久久久久| 91精品黄色片免费大全| 国产一区二区免费在线| 亚洲综合丁香婷婷六月香| 欧美一级生活片| 波多野洁衣一区| 免费一级片91| 亚洲人成网站影音先锋播放| 日韩精品一区二| 色综合久久88色综合天天6| 麻豆精品在线播放| 夜夜嗨av一区二区三区网页 | 亚洲国产成人午夜在线一区| 欧美日韩亚洲综合| 国产 欧美在线| 男人的j进女人的j一区| 国产精品无圣光一区二区| 播五月开心婷婷综合| 青青草国产成人99久久| 亚洲蜜臀av乱码久久精品| 精品99999| 欧美日韩一区二区在线观看| 成人性生交大片免费看中文 | 三级亚洲高清视频| 欧美大胆人体bbbb| 成人不卡免费av| 激情综合色丁香一区二区| 一区二区久久久久| 国产精品欧美一区喷水| 26uuu国产一区二区三区| 欧美日韩高清一区二区不卡 | 亚洲午夜久久久久久久久电影网| 精品欧美乱码久久久久久1区2区| 91久久国产最好的精华液| 天堂久久一区二区三区| 亚洲乱码国产乱码精品精小说| 国产欧美日韩视频在线观看| 日韩免费在线观看| 91免费版在线| youjizz久久| 国产一区不卡在线| 美女任你摸久久| 无吗不卡中文字幕| 一区二区三区在线高清| 中文字幕永久在线不卡| 2023国产一二三区日本精品2022| 91精品国产欧美一区二区成人| 欧美在线免费观看视频| 一本大道综合伊人精品热热| 国产成人h网站| 国产在线精品一区二区夜色| 亚洲成人三级小说| 一区二区三区中文免费| 久久久www成人免费无遮挡大片| 99在线热播精品免费| 国产一区视频在线看| 久国产精品韩国三级视频| 日本sm残虐另类| 日本不卡不码高清免费观看| 亚洲一区二区三区不卡国产欧美| 国产精品国产成人国产三级 | 色综合色狠狠综合色| 成人高清在线视频| 懂色av中文一区二区三区| 国产成人日日夜夜| 国产成人亚洲综合a∨猫咪| 国产精品一区二区在线播放| 免费高清视频精品| 偷拍自拍另类欧美| 午夜视频久久久久久| 亚洲图片欧美色图| 亚洲欧洲99久久| 亚洲精品中文字幕乱码三区| 亚洲欧美日韩国产成人精品影院| 亚洲欧美日韩久久| 亚洲夂夂婷婷色拍ww47| 一区二区三区在线免费视频| 亚洲综合一区二区三区| 一区二区三区精密机械公司| 国产精品少妇自拍| 亚洲三级理论片| 国产精品久久久久久久久久久免费看 | 石原莉奈在线亚洲三区| 蜜桃av一区二区在线观看 | 欧美tickle裸体挠脚心vk| 精品美女一区二区| 国产偷国产偷精品高清尤物| 日韩欧美在线不卡| 91精品一区二区三区在线观看| 日韩欧美国产小视频| 久久影院视频免费| 国产精品高潮呻吟久久| 亚洲黄色免费网站| 日韩精品每日更新| 国产一区二区三区在线看麻豆| 成人免费高清视频| 在线观看不卡一区| 欧美日韩精品二区第二页| 欧美一区二区精品在线| 日本成人中文字幕| 一区二区三区精品| 蜜臀av性久久久久蜜臀av麻豆| 国产精品一区二区久久精品爱涩| 国产jizzjizz一区二区| 风间由美一区二区av101| 91亚洲精品久久久蜜桃| 色系网站成人免费| 日韩欧美国产电影| 中文字幕一区二区三区视频| 一区二区三区成人在线视频| 亚洲电影视频在线| 久久国产三级精品| 99久久精品一区| 欧美日韩高清影院| 久久精品人人做| 亚洲视频网在线直播| 青草av.久久免费一区| 成人在线综合网| 欧美日高清视频| 国产欧美日韩不卡| 亚洲另类春色校园小说| 久久精品国产一区二区三| 国产精品自拍在线| 在线免费观看一区| 欧美精品一区二区三区很污很色的 | 黑人巨大精品欧美黑白配亚洲| 不卡一区二区中文字幕| 在线电影国产精品| 国产欧美日韩在线视频| 亚洲国产aⅴ天堂久久| 国产suv精品一区二区883| 欧美日韩一级大片网址| 欧美激情中文字幕一区二区| 偷拍自拍另类欧美| 国产一区二区成人久久免费影院 | 91小视频在线免费看| 欧美刺激脚交jootjob| 最新不卡av在线| 韩国女主播一区|