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

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

?? xzycq_weilian.cpp

?? pci的windows系統驅動源碼
?? CPP
字號:
// weilian.cpp : Defines the entry point for the DLL application.//#include "stdafx.h"#include "weilian.h"#include "stdlib.h"#include "weilian_lib.h"#include <conio.h>#include "WEILIAN_lib.h"#include "../../include/windrvr.h"#ifdef _USE_SPECIFIC_KERNEL_DRIVER_    #undef WD_Open    #define WD_Open WD_OpenKernelHandle    #if defined(UNIX)        #undef WD_FUNCTION        #define WD_FUNCTION(wFuncNum,h,pParam,dwSize,fWait) ((ULONG) ioctl((int)(h), wFuncNum, pParam))    #endif#endiftypedef struct WEILIAN_STRUCT{    HANDLE              hWD;    HANDLE              hEvent;    WD_USB_DEVICE_INFO  deviceInfo;    DWORD               hDevice;} WEILIAN_STRUCT;WEILIAN_HANDLE WEILIAN_LocateAndOpenDevice(BOOL fUseDefault);BOOL USB_Get_WD_handle(HANDLE *phWD);BOOL APIENTRY DllMain( HANDLE hModule,                        DWORD  ul_reason_for_call,                        LPVOID lpReserved					 ){    switch (ul_reason_for_call)	{		case DLL_PROCESS_ATTACH:		case DLL_THREAD_ATTACH:		case DLL_THREAD_DETACH:		case DLL_PROCESS_DETACH:			break;    }    return TRUE;}WEILIAN_API WORD ReadData(WEILIAN_HANDLE hUsbDevice,WORD* pRdataAddr){	DWORD dwBytesTransferred;	int  dwSize,ii,xscan;	dwSize=1024;		BYTE pBuffer[1024];         if(hUsbDevice!=NULL)   {    // xscan=100;	   for(xscan=0;xscan<240;xscan++)	   {	     	      dwBytesTransferred = WEILIAN_ReadPipe82(hUsbDevice,  pBuffer , dwSize);          if (dwBytesTransferred==0xffffffff) return 2;		             for(ii=0;ii<319;ii++)		    pRdataAddr[xscan*319+ii]=pBuffer[2*ii+1]*256+pBuffer[2*ii];		 		  	   }      return 0;   }    return 1;}WEILIAN_API WEILIAN_HANDLE OpenDevice(void){   // UINT cmd;    HANDLE hWD;   // DWORD dwUniqueID;    DWORD dwAction = 0;    BOOL fRegisteredEvent = FALSE;    WEILIAN_HANDLE hWEILIAN = NULL;	if (!USB_Get_WD_handle(&hWD))         return NULL;	WD_Close (hWD);	hWEILIAN = WEILIAN_LocateAndOpenDevice(TRUE);	return hWEILIAN;}WEILIAN_API   CloseDevice(WEILIAN_HANDLE hUsbDevice){	WEILIAN_Close(hUsbDevice);	hUsbDevice=NULL;	 }WEILIAN_API BOOL WriteData(WEILIAN_HANDLE hUsbDevice,WORD* pWdataAddr,WORD Length){   // WORD* OutBuffer;    PVOID pBuffer;    DWORD dwBytesTransferred;    pBuffer=pWdataAddr;	if(hUsbDevice!=NULL){      dwBytesTransferred = WEILIAN_WritePipe01(hUsbDevice, pBuffer, Length);	  if (dwBytesTransferred==0xffffffff){               			   MessageBox(NULL,"Error on transfer!","Write data",MB_OK);        return FALSE;	  }      return TRUE;	}	MessageBox(NULL,"Please Open Devcie first!","Write data",MB_OK);	return FALSE;}WEILIAN_API double GrayToTemprature(WORD GrayData,DEVICE_ENVIROMENT_PARAM const* Enviroment_Param){	double TempratureData;    TempratureData=GrayData*0.2+120;	return TempratureData;}//BOOL USB_Get_WD_handle(HANDLE *phWD){    WD_VERSION ver;    *phWD = INVALID_HANDLE_VALUE;    *phWD = WD_Open();    // Check whether handle is valid and version OK    if (*phWD==INVALID_HANDLE_VALUE)     {                return FALSE;    }    BZERO(ver);    WD_Version(*phWD, &ver);    if (ver.dwVer<WD_VER)     {                WD_Close (*phWD);        *phWD = INVALID_HANDLE_VALUE;        return FALSE;    }    return TRUE;}WEILIAN_HANDLE WEILIAN_LocateAndOpenDevice(BOOL fUseDefault){    WEILIAN_HANDLE hWEILIAN;    DWORD uniqueId = 0, configNum = 0, dwInterface = 0, dwAlternate = 0;    WD_USB_SCAN_DEVICES usbScan;    WD_USB_CONFIGURATION config;    HANDLE hWD;    DWORD scanIndex;    WEILIAN_RegisterWinDriver();    if (!USB_Get_WD_handle(&hWD))        return NULL;    BZERO(usbScan);    if (fUseDefault)    {        usbScan.searchId.dwVendorId = WEILIAN_DEFAULT_VENDOR_ID;        usbScan.searchId.dwProductId = WEILIAN_DEFAULT_PRODUCT_ID;    }    WD_UsbScanDevice(hWD, &usbScan);    if (!usbScan.dwDevices)    {     //   printf ("No deviced found\n");		MessageBox(NULL,"No device found!","Scan device",MB_OK);        WD_Close(hWD);        return NULL;    }    if (fUseDefault)    {        for (scanIndex=0; scanIndex<usbScan.dwDevices; scanIndex++)        {            if (usbScan.deviceGeneralInfo[scanIndex].dwInterfaceNum==WEILIAN_DEFAULT_SCAN_INTERFACE)            {                uniqueId = usbScan.uniqueId[scanIndex];                break;            }        }        if (!uniqueId)        {        //    printf ("Could not find the device interface.\n");			MessageBox(NULL,"Could not find the device interface!",				"Device Interface",MB_OK);            WD_Close(hWD);            return NULL;        }        configNum = WEILIAN_DEFAULT_CONFIG;        dwInterface = WEILIAN_DEFAULT_INTERFACE;        dwAlternate = WEILIAN_DEFAULT_ALTERNATE;    }    else    {              if (!uniqueId)        {         //   printf ("Unique ID 0 is not valid\n");			MessageBox(NULL,"Unique ID 0 is not valid!","Unique ID",MB_OK);            WD_Close(hWD);            return NULL;        }        for (scanIndex=0; scanIndex<usbScan.dwDevices; scanIndex++)        {            if (usbScan.uniqueId[scanIndex]==uniqueId)                break;        }        if (scanIndex==usbScan.dwDevices)        {           			MessageBox(NULL,"Unique ID was not found!","Find Unique ID",MB_OK);            WD_Close(hWD);            return NULL;        }        configNum = 0;        if (usbScan.deviceGeneralInfo[scanIndex].dwConfigurationsNum>1)        {                       configNum=usbScan.deviceGeneralInfo[scanIndex].dwConfigurationsNum - 1;                    }        BZERO(config);        config.uniqueId = uniqueId;        config.dwConfigurationIndex = configNum;        WD_UsbGetConfiguration(hWD, &config);        if (config.dwInterfaceAlternatives==0)        {          //  printf ("No interfaces found\n");            WD_Close(hWD);            return NULL;        }        if (config.dwInterfaceAlternatives==1)        {            dwInterface = config.Interface[0].Interface.dwNumber;            dwAlternate = config.Interface[0].Interface.dwAlternateSetting;        }        else        {                     if (usbScan.deviceGeneralInfo[scanIndex].dwInterfaceNum!=WD_SINGLE_INTERFACE)                dwInterface = usbScan.deviceGeneralInfo[scanIndex].dwInterfaceNum;            else            {                         }                 }    }    hWEILIAN = WEILIAN_Open (uniqueId, configNum, dwInterface, dwAlternate);    if (!hWEILIAN)    {       		MessageBox(NULL,"Device not Open!","Open device",MB_OK);        WD_Close(hWD);        return NULL;    }    WD_Close(hWD);    return hWEILIAN;}void WEILIAN_RegisterWinDriver(){    HANDLE hWD;    WD_LICENSE lic;    hWD = WD_Open();    if (hWD!=INVALID_HANDLE_VALUE)    {         strcpy(lic.cLicense, "68C9BECCEDE89D50638A21ECD7B87900.Warlock//SSG");         WD_License(hWD, &lic);         WD_Close(hWD);    }}WEILIAN_HANDLE WEILIAN_Open(DWORD uniqueId, DWORD configIndex, DWORD dwInterface, DWORD dwAlternate){    WEILIAN_HANDLE hWEILIAN = (WEILIAN_HANDLE) malloc (sizeof (WEILIAN_STRUCT));    WD_VERSION ver;    WD_USB_DEVICE_REGISTER devReg;    BZERO(*hWEILIAN);    WEILIAN_RegisterWinDriver();    hWEILIAN->hDevice = 0;    hWEILIAN->hWD = WD_Open();    // Verify that the handle is valid and that the version number is correct    if (hWEILIAN->hWD==INVALID_HANDLE_VALUE)    {       // sprintf (WEILIAN_ErrorString, "Failed opening WinDriver device\n");        free(hWEILIAN);        return NULL;    }    BZERO(ver);    WD_Version(hWEILIAN->hWD, &ver);    if (ver.dwVer<WD_VER)    {       // sprintf (WEILIAN_ErrorString, "Incorrect WinDriver version\n");        WD_Close(hWEILIAN->hWD);        free(hWEILIAN);        return NULL;    }    BZERO(devReg);    devReg.uniqueId = uniqueId;    devReg.dwConfigurationIndex = configIndex;    devReg.dwInterfaceNum = dwInterface;    devReg.dwInterfaceAlternate = dwAlternate;    WD_UsbDeviceRegister(hWEILIAN->hWD, &devReg);    if (!devReg.hDevice)    {      //  sprintf (WEILIAN_ErrorString, "Could not open device\n");        WD_Close(hWEILIAN->hWD);        free(hWEILIAN);        return NULL;    }    hWEILIAN->hDevice = devReg.hDevice;    hWEILIAN->deviceInfo = devReg.Device;    // Open finished OK    return hWEILIAN;}DWORD WEILIAN_ReadPipe82(WEILIAN_HANDLE hWEILIAN, PVOID pBuffer, DWORD dwSize){    WD_USB_TRANSFER transfer;    BZERO(transfer);    transfer.dwPipe = 0x82;    transfer.dwBytes = dwSize;    transfer.fRead = TRUE;    transfer.pBuffer = pBuffer;    transfer.hDevice = hWEILIAN->hDevice;    transfer.dwTimeout = 300000;    WD_UsbTransfer(hWEILIAN->hWD, &transfer);    if (transfer.fOK)        return transfer.dwBytesTransfered;    return 0xffffffff;}void WEILIAN_Close(WEILIAN_HANDLE hWEILIAN){    WD_USB_DEVICE_REGISTER devReg;    BZERO(devReg);    devReg.hDevice = hWEILIAN->hDevice;    WD_UsbDeviceUnregister(hWEILIAN->hWD, &devReg);    // close WinDriver    WD_Close(hWEILIAN->hWD);    free (hWEILIAN);}DWORD WEILIAN_WritePipe01(WEILIAN_HANDLE hWEILIAN, PVOID pBuffer, DWORD dwSize){    WD_USB_TRANSFER transfer;    BZERO(transfer);    transfer.dwPipe = 0x01;    transfer.dwBytes = dwSize;    transfer.pBuffer = pBuffer;    transfer.hDevice = hWEILIAN->hDevice;    transfer.dwTimeout = 10000;    WD_UsbTransfer(hWEILIAN->hWD, &transfer);    if (transfer.fOK)        return transfer.dwBytesTransfered;    return 0xffffffff;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
另类的小说在线视频另类成人小视频在线| 亚洲国产成人精品视频| 亚洲欧美在线高清| 日韩电影免费一区| 色综合久久久久网| 久久久影院官网| 日本欧美一区二区在线观看| 成人国产精品免费观看动漫| 日韩精品一区二区三区视频| 亚洲一区二区精品视频| jlzzjlzz亚洲女人18| 久久久久久免费网| 蜜臀99久久精品久久久久久软件| 色综合久久88色综合天天免费| 久久久影院官网| 麻豆精品国产传媒mv男同| 欧美日韩国产三级| 一区二区高清免费观看影视大全| 丁香五精品蜜臀久久久久99网站 | 亚洲人快播电影网| 国产一区二区视频在线播放| 欧美麻豆精品久久久久久| 亚洲欧美日韩电影| 97精品久久久午夜一区二区三区 | 精品一区精品二区高清| 欧美日韩高清一区二区| 一区二区三区日韩欧美| 在线观看日韩电影| 一区二区三区四区在线免费观看| 不卡一区在线观看| 国产精品久久久久久久久免费桃花 | 欧美videos中文字幕| 首页亚洲欧美制服丝腿| 欧美色区777第一页| 亚洲韩国一区二区三区| 欧美日韩一区二区在线视频| 亚洲一区影音先锋| 欧美少妇bbb| 日韩主播视频在线| 欧美一级理论片| 久草这里只有精品视频| 久久综合视频网| 国产69精品一区二区亚洲孕妇| 久久久蜜臀国产一区二区| 国产成人精品免费| 国产精品国产馆在线真实露脸| av成人老司机| 亚洲电影第三页| 欧美大片日本大片免费观看| 国产激情91久久精品导航| 国产精品看片你懂得| 91黄视频在线观看| 日韩主播视频在线| 久久久亚洲综合| 色欲综合视频天天天| 婷婷激情综合网| 26uuu国产电影一区二区| 成人黄色免费短视频| 亚洲午夜精品一区二区三区他趣| 欧美日韩视频一区二区| 国产乱色国产精品免费视频| 国产精品美女久久久久久久| 精品1区2区3区| 久久99国产精品免费网站| 日韩一区中文字幕| 51精品秘密在线观看| 成人午夜激情在线| 亚欧色一区w666天堂| 久久久一区二区| 欧美午夜片在线看| 国产91精品欧美| 秋霞午夜鲁丝一区二区老狼| 国产精品麻豆视频| 欧美一区二区网站| 色一区在线观看| 久久99久久99| 亚洲自拍欧美精品| 国产午夜精品在线观看| 欧美伦理电影网| av资源网一区| 国内精品久久久久影院一蜜桃| 亚洲精品成人a在线观看| 欧美精品一区二区三区久久久| 在线看日韩精品电影| 成人国产在线观看| 久久国产精品第一页| 亚洲一区视频在线| 国产精品国产自产拍高清av王其| 欧美日本一道本在线视频| 不卡影院免费观看| 国产精品18久久久久久久久久久久| 一区二区三区在线视频免费| 久久精品亚洲精品国产欧美| 制服丝袜激情欧洲亚洲| 在线精品视频一区二区| av午夜精品一区二区三区| 国产精品888| 国模无码大尺度一区二区三区| 天堂av在线一区| 亚洲国产va精品久久久不卡综合| 中文字幕亚洲在| 久久久精品2019中文字幕之3| 欧美一区二区三区思思人| 欧美久久久久久久久中文字幕| 色综合久久中文综合久久97| 91一区一区三区| 99精品偷自拍| 成人免费三级在线| 处破女av一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 国产精品538一区二区在线| 久久99久久99小草精品免视看| 视频精品一区二区| 日韩精品一二区| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲高清视频在线| 日韩国产欧美在线播放| 日韩中文字幕亚洲一区二区va在线| 亚洲高清不卡在线观看| 婷婷久久综合九色综合绿巨人| 亚洲国产精品一区二区久久| 水蜜桃久久夜色精品一区的特点| 婷婷成人综合网| 日韩和欧美一区二区| 另类小说视频一区二区| 热久久久久久久| 久久99精品久久久久久国产越南 | 一区二区三区91| 亚洲第一二三四区| 免费观看在线综合色| 国内精品不卡在线| 99久久精品国产一区| 91行情网站电视在线观看高清版| 精品视频一区二区三区免费| 日韩一二在线观看| 国产婷婷色一区二区三区| 国产精品国产三级国产三级人妇| 亚洲美女区一区| 日本视频在线一区| 国产福利精品导航| 91成人国产精品| 日韩欧美另类在线| 国产精品国产三级国产有无不卡| 亚洲最新在线观看| 韩国v欧美v日本v亚洲v| av资源网一区| 欧美一区二区精品在线| 国产婷婷精品av在线| 亚洲一区二区三区小说| 久久国产精品色婷婷| 91首页免费视频| 日韩欧美亚洲国产精品字幕久久久| 国产女主播一区| 午夜电影一区二区| 成人性生交大片免费看中文 | 亚洲免费观看视频| 麻豆成人av在线| 色婷婷激情久久| 精品不卡在线视频| 一区二区三区四区乱视频| 久久精品国产99| 在线精品视频一区二区| 久久久久久免费网| 日韩电影在线看| 91欧美激情一区二区三区成人| 欧美videos大乳护士334| 日韩伦理电影网| 国产成人精品三级| 精品日韩成人av| 婷婷国产v国产偷v亚洲高清| 99国产精品99久久久久久| 日韩欧美中文字幕公布| 一区二区免费看| 9久草视频在线视频精品| 精品99999| 免费成人美女在线观看| 欧美日韩专区在线| ㊣最新国产の精品bt伙计久久| 精品一区二区三区不卡| 欧美人xxxx| 亚洲精品大片www| 99久久精品一区| 久久精品视频一区| 韩国中文字幕2020精品| 欧美老人xxxx18| 亚洲国产精品久久人人爱蜜臀| 91丨porny丨国产入口| 国产精品久久久久久久久晋中| 国产福利不卡视频| 欧美一区二区三区不卡| 亚洲成av人片在www色猫咪| 色婷婷综合久久久久中文一区二区 | 在线观看区一区二| 中文字幕日韩av资源站| 豆国产96在线|亚洲| 国产精品私人影院| av亚洲精华国产精华精华 | 成年人网站91| 国产精品免费看片| 99视频在线精品|