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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? vcp4usb.h

?? USB轉(zhuǎn)串口的驅(qū)動(dòng)的代碼.rar 需要安裝ddk ds
?? H
字號(hào):
#ifndef VCP4USB_INCD
#define VCP4USB_INCD

#ifdef __cplusplus
extern "C" {
#endif
    
#include "ntddk.h"
#include "ntddser.h" // for serial port
    
#include <initguid.h>
    //TODO: guid for XXXX device
    DEFINE_GUID(GUID_CLASS_XXXX_BULK, 
        ......);
#define XXXX_SYMLINK_CMPSTR L"\\??\\USB#Vid_xxxx&Pid_xxxx"
#define XXXX_SYMLINK_STRLEN (25 * sizeof(WCHAR))
    
#if DBG
    
    extern int gDebugLevel; 
    
#define DBGPRINT DbgPrint
    
#define DTrap() DbgBreakPoint()
    
#define DPrint(_level_, _x_) \
    do { \
    if (gDebugLevel & _level_) { \
    DBGPRINT(" Vcp4usb: " ); \
    DBGPRINT _x_ ; \
    } \
    }while(0)
    
#define DPrintHex(_level_, _x_, _val_, _len_) \
    do { \
    if ((gDebugLevel & _level_) && (_len_ > 0)) { \
    DBGPRINT(" Vcp4usb: " ); \
    DBGPRINT _x_ ; \
    DBGPRINT(" len=%d ", _len_); \
    DBGPRINT(" buf="); \
    for (ULONG i=0; i<_len_; i++) \
    DBGPRINT("0x%x ", _val_[i]); \
    } \
    DBGPRINT("\n"); \
    }while(0)
    
#else
    
#define DTrap()
#define DPrint(_level_, _x_)
#define DPrintHex(_level_, _x_, _val_, _len_)
    
#endif // DBG
    
    // Define debug level
#define DBG_ALL         0x3FFFFFFF
#define DBG_ENTRY       0x00000001
#define DBG_PNP         0x00000002
#define DBG_POWER       0x00000004
#define DBG_SYSCONTRAL  0x00000008
#define DBG_DRVCONTRAL  0x00000010
#define DBG_CREATE      0x00000020
#define DBG_CLOSE       0x00000040
#define DBG_READ        0x00000080
#define DBG_WRITE       0x00000100
#define DBG_THREAD      0x00000200
#define DBG_DATA        0x00000400
#define DBG_DATALOG     0x00000800
#define DBG_SPEC        0x40000000
#define DBG_OTHER       0x80000000
    
#define VCP4USB_DEVICE_NAME L"\\Device\\Vcp4Usb"
#define VCP4USB_NAME L"Vcp4usb"
#define SERIAL_DEVICE_MAP L"SERIALCOMM"
#define VCP4USB_VERSION "Version 1.2.0.0"
    
#define TIMER_EX_RUNNING            0x00000001
#define TIMER_EX_CANCELED           0x00000002
    
#define RX_BUFFER_SIZE 2048 // for capture screen
#define TX_BUFFER_SIZE 2048
    
    /////////////////////////////////////////////////////////////////////////////
    //	timer
    typedef struct _TIMER_EX {
        KTIMER              kernelTimer;
        KDPC                dpc;
        ULONG               flags;
    } TIMER_EX, *PTIMER_EX;
    
    /////////////////////////////////////////////////////////////////////////////
    //	Our device extension
    typedef struct _VCP4USB_DEVICE_EXTENSION
    {
        LIST_ENTRY      listEntry;
        ULONG           instanceNo;
        UNICODE_STRING  ntDeviceName;
        UNICODE_STRING  dosDeviceName;
        UNICODE_STRING  interfaceName;
        
        PVOID           pThreadObj;
        KEVENT          eventThreadExit;
        KEVENT          eventThreadExiting;
        
        BOOLEAN         bIsConnected;
        BOOLEAN         bReadPending;
        BOOLEAN         bWritePending;
        
        UCHAR *         pTxBuf;
        UCHAR           pTxArray[TX_BUFFER_SIZE + 1];
        ULONG           curLenTx; // current write length
        UCHAR *         pRxBuf;
        UCHAR           pRxArray[RX_BUFFER_SIZE + 1];
        ULONG           curLenRx;
		ULONG           needLenRx;
        
        KEVENT          eventThreadStart;
        KEVENT          eventWriteStart;
        KEVENT          eventReadEnd;
        KEVENT          eventReadStart;
        
        KSPIN_LOCK      spinLock;
        PIRP            irpReadPending;
        PIRP            irpWritePending;
        
        ULONG           eventMask;
        ULONG           historyEvents;
        SERIAL_TIMEOUTS curTimeouts;
        SERIAL_HANDFLOW curHandflow;
        SERIAL_BAUD_RATE curBaudRate;
        SERIAL_LINE_CONTROL curLineControl;
        SERIAL_CHARS    curChars;
        PIRP            pWaitCtrlIrp;
        
        TIMER_EX        readIntervalTimer;
        TIMER_EX        readTotalTimer;
        TIMER_EX        writeTotalTimer;
        
        PDEVICE_OBJECT  fdo;
        PDEVICE_OBJECT  NextStackDevice;
    } VCP4USB_DEVICE_EXTENSION, *PVCP4USB_DEVICE_EXTENSION;
    
    typedef struct _VCP4USB_RW_CONTEXT {
        PDEVICE_OBJECT DeviceObject;
        PIRP  Irp;
        PIRP  BaseIrp;
    } VCP4USB_RW_CONTEXT, *PVCP4USB_RW_CONTEXT;
    
    // globale Data
    extern LIST_ENTRY gDevList;
    extern KMUTEX gDevListMutex;
    
    /////////////////////////////////////////////////////////////////////////////
    // Forward declarations of global functions
    
    VOID Vcp4usbUnload(IN PDRIVER_OBJECT DriverObject);
    
    NTSTATUS Vcp4usbPower(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbPnp(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbAddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo);
    
    NTSTATUS Vcp4usbCreate(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbClose(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbWrite(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbRead(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbDeviceControl(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    NTSTATUS Vcp4usbSystemControl(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
    
    /////////////////////////////////////////////////////////////////////////////
    VOID Vcp4usbThread(IN PVOID Context);
    
    NTSTATUS Vcp4usbCompleteIrp(PIRP Irp, NTSTATUS status, ULONG info);
    
    NTSTATUS GetRegistryKeyValue(IN HANDLE regHandle, IN PWCHAR keyName, IN PVOID data, IN ULONG dataLength);
    
    NTSTATUS GetUsbDeviceName(OUT PUNICODE_STRING devName, IN CONST GUID *pGuid, IN CONST PWSTR pPrefix, IN ULONG prefixLength, IN ULONG instance);
    
    NTSTATUS createFile(OUT PHANDLE pHandle, IN PUNICODE_STRING pDevName, IN PWSTR suffix, IN USHORT suffixLength, IN ACCESS_MASK mode);
    
    NTSTATUS GetDev(OUT PFILE_OBJECT * pFileObject, OUT PDEVICE_OBJECT * pDevObject, IN PUNICODE_STRING pDevName, IN PWSTR suffix, IN USHORT suffixLength, IN ACCESS_MASK mode);
    
    VOID ApcRoutineRead(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved);
    
    VOID ApcRoutineWrite(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, IN ULONG Reserved);
    
    NTSTATUS getObjectPointer(OUT PDEVICE_OBJECT * hObj, OUT PFILE_OBJECT * hFile, IN PUNICODE_STRING pDevName, IN PWSTR suffix, IN USHORT suffixLength, IN ACCESS_MASK mode);
    
    VOID CancelWaitIrp(IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp);
    
    BOOLEAN CalculateWriteTimeout(IN PVCP4USB_DEVICE_EXTENSION pDevExt, IN ULONG dataSize,
        OUT PLARGE_INTEGER pTotalTimeout);
    
    BOOLEAN CalculateReadTimeouts(IN PVCP4USB_DEVICE_EXTENSION pDevExt, IN ULONG dataSize,
        IN BOOLEAN firstChar, OUT PLARGE_INTEGER pIntervalTimeout,
        OUT PLARGE_INTEGER pTotalTimeout);
    
    VOID DpcReadIntervalTimeout(IN PKDPC pDpc, IN PVOID pDeferredContext, IN PVOID systemArgument1,
        IN PVOID systemArgument2);
    
    VOID DpcReadTotalTimeout(IN PKDPC pDpc, IN PVOID pDeferredContext, IN PVOID systemArgument1,
        IN PVOID systemArgument2);
    
    VOID DpcWriteTotalTimeout(IN PKDPC pDpc, IN PVOID pDeferredContext, IN PVOID systemArgument1,
        IN PVOID systemArgument2);
    
    VOID ReportEvent(IN PVCP4USB_DEVICE_EXTENSION dx, IN ULONG events);
    
    /////////////////////////////////////////////////////////////////////////////
    
    //
    // timer management
    //
    
#define InitTimer(/*PTIMER_EX*/ pTimer, /*PKDEFERRED_ROUTINE*/ routine, /*PVOID*/ context) \
    { \
    KeInitializeTimer(&(pTimer)->kernelTimer); \
    KeInitializeDpc(&(pTimer)->dpc, routine, context); \
    }
    
#define StartTimer(/*PTIMER_EX*/ pTimer, /*LARGE_INTEGER*/ dueTime) \
    { \
    (pTimer)->flags |= TIMER_EX_RUNNING; \
    KeSetTimer(&(pTimer)->kernelTimer, dueTime, &(pTimer)->dpc); \
    }
    
#define CancelTimer(/*PTIMER_EX*/ pTimer) \
    if (((pTimer)->flags & TIMER_EX_RUNNING) != 0) \
    { \
    if (!KeCancelTimer(&(pTimer)->kernelTimer)) \
    (pTimer)->flags |= TIMER_EX_CANCELED; \
    (pTimer)->flags &= ~TIMER_EX_RUNNING; \
    }
    
    __inline BOOLEAN TimerCanceled(PTIMER_EX pTimer)
    {
        if (((pTimer)->flags & TIMER_EX_CANCELED) != 0)
        {
            (pTimer)->flags &= ~TIMER_EX_CANCELED;
            return TRUE;
        }
        else
        {
            (pTimer)->flags &= ~TIMER_EX_RUNNING;
            return FALSE;
        }
    }
    
    
    
#ifdef __cplusplus
}
#endif

#endif // VCP4USB_INCD

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99精品一区二区三区三区| 国产成人在线免费观看| 久久久久久夜精品精品免费| 99国产精品久久久久久久久久| 视频在线观看一区| ...中文天堂在线一区| 在线不卡中文字幕| 色综合视频在线观看| 国产一区 二区| 视频一区二区国产| 亚洲欧美日韩成人高清在线一区| 精品国产91亚洲一区二区三区婷婷| 色综合久久88色综合天天免费| 免费成人结看片| 亚洲亚洲人成综合网络| 国产精品无人区| 久久久久久免费| 日韩视频免费直播| 欧美日韩第一区日日骚| 色综合久久88色综合天天| 国产高清精品久久久久| 免费观看30秒视频久久| 亚洲123区在线观看| 综合欧美亚洲日本| 国产精品理论片| 国产视频一区二区在线| 精品三级av在线| 日韩视频一区在线观看| 欧美日韩国产高清一区| 欧美亚洲图片小说| 色激情天天射综合网| 91亚洲资源网| 99久久99精品久久久久久 | 蜜臀av性久久久久av蜜臀妖精| 一区二区激情小说| 亚洲黄色片在线观看| 亚洲视频 欧洲视频| 综合欧美一区二区三区| 亚洲美女少妇撒尿| 亚洲黄色av一区| 一区二区三区美女视频| 亚洲最新视频在线播放| 洋洋成人永久网站入口| 亚洲va国产天堂va久久en| 亚洲国产精品天堂| 天堂资源在线中文精品| 日本视频一区二区| 久久av中文字幕片| 色噜噜夜夜夜综合网| 91网站在线播放| 欧美亚洲自拍偷拍| 欧美一区二区三区免费| 欧美电影免费观看高清完整版在 | 国产精品一区二区在线观看不卡| 国内外精品视频| 国产mv日韩mv欧美| 色欲综合视频天天天| 欧美日韩国产电影| 2024国产精品| 综合久久综合久久| 亚洲国产一区二区三区| 蜜臀国产一区二区三区在线播放| 精品一区二区久久久| 国产成都精品91一区二区三| 不卡的电视剧免费网站有什么| 色综合中文字幕| 欧美精品第1页| 久久久久国产精品人| 日韩美女视频一区| 视频一区中文字幕国产| 国产毛片精品一区| 色婷婷综合久久久| 日韩精品中文字幕在线一区| 久久久久久亚洲综合| 亚洲精品日日夜夜| 久久国产精品免费| av爱爱亚洲一区| 欧美精品123区| 国产精品丝袜一区| 日韩精品一级中文字幕精品视频免费观看 | 亚洲另类在线一区| 蜜臀av一区二区三区| 不卡欧美aaaaa| 日韩一级片网址| 亚洲人成网站影音先锋播放| 美日韩一区二区三区| 99视频热这里只有精品免费| 制服丝袜亚洲色图| 国产精品成人在线观看| 蜜桃av一区二区在线观看 | 欧美一区二区三区四区久久| 国产亚洲欧美日韩在线一区| 一区二区免费在线播放| 国产福利91精品一区二区三区| 欧美在线观看视频一区二区| 久久久久国产精品免费免费搜索| 亚洲大尺度视频在线观看| 大白屁股一区二区视频| 日韩一级完整毛片| 亚洲综合免费观看高清完整版在线| 国产一区二区三区日韩 | 色8久久精品久久久久久蜜| 久久网这里都是精品| 五月激情综合网| 91蜜桃免费观看视频| 国产午夜精品久久久久久免费视 | 美女视频黄免费的久久| 色哟哟精品一区| 久久精品日韩一区二区三区| 日韩高清在线不卡| 欧美在线视频全部完| 国产精品久久综合| 国产一区二区三区在线观看免费| 欧美日韩极品在线观看一区| 亚洲色欲色欲www在线观看| 国产成人午夜99999| 欧美成人a∨高清免费观看| 石原莉奈在线亚洲三区| 欧美日韩日日骚| 亚洲精品免费看| 色诱视频网站一区| 亚洲男人的天堂网| 成人18视频日本| 亚洲欧洲美洲综合色网| 成人开心网精品视频| 中文字幕av一区二区三区免费看| 极品少妇一区二区| 精品国产在天天线2019| 精品一区二区在线看| 精品捆绑美女sm三区| 美美哒免费高清在线观看视频一区二区 | 日韩电影在线一区二区三区| 欧美日韩一区二区三区免费看| 亚洲人成网站影音先锋播放| 99精品黄色片免费大全| 最新成人av在线| av影院午夜一区| 亚洲图片你懂的| 91免费小视频| 亚洲自拍偷拍网站| 欧美人与禽zozo性伦| 午夜精品福利一区二区蜜股av| 欧美日韩一区二区三区免费看 | 精品美女在线播放| 国产一区二区三区蝌蚪| 久久精品免视看| 不卡一区二区在线| 一区二区三区在线观看动漫 | 欧美日韩亚洲高清一区二区| 午夜精品久久久久久久| 欧美一区二区三区不卡| 美洲天堂一区二卡三卡四卡视频| 精品国产凹凸成av人网站| 国产一区免费电影| 国产精品女主播av| 欧美性高清videossexo| 日韩激情在线观看| 欧美精品一区二区三区视频| 国产mv日韩mv欧美| 亚洲色图视频免费播放| 欧美日韩一区不卡| 久久66热re国产| 国产精品欧美一区二区三区| 日本道色综合久久| 日韩专区一卡二卡| 国产日韩欧美a| 日本高清不卡在线观看| 蜜臀国产一区二区三区在线播放| 久久久99精品免费观看| 91丝袜美腿高跟国产极品老师| 亚洲成人免费av| 国产午夜久久久久| 91黄色免费版| 久久激情五月婷婷| 亚洲欧美电影院| 日韩欧美亚洲国产精品字幕久久久| 国产成人一区二区精品非洲| 一区二区三区在线免费观看| 制服丝袜亚洲精品中文字幕| 国产·精品毛片| 午夜久久久久久电影| 国产亚洲制服色| 欧美裸体一区二区三区| 国产v综合v亚洲欧| 日韩电影在线免费看| 亚洲欧洲精品一区二区三区| 日韩一区二区三区在线观看 | 床上的激情91.| 日韩国产欧美三级| 18欧美亚洲精品| 精品国产乱码久久久久久久久 | 成人美女视频在线观看18| 日韩高清在线电影| 最新成人av在线| 久久久久国产精品麻豆ai换脸| 欧美日韩精品一区二区三区| 成人深夜视频在线观看| 日本系列欧美系列| 亚洲少妇30p| 国产日韩欧美激情|