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

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

?? usbfxtest.cpp

?? VisualC++寫的一個USB的驅動程序。
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

            for (UCHAR i = 0; i < 8; i++) {

                sevenSegment = 1 << i;

                if (!DeviceIoControl(deviceHandle,
                                     IOCTL_OSRUSBFX2_SET_7_SEGMENT_DISPLAY,
                                     &sevenSegment,             // Ptr to InBuffer
                                     sizeof(UCHAR),            // Length of InBuffer
                                     NULL,                 // Ptr to OutBuffer
                                     0,         // Length of OutBuffer
                                     &bytesRet,                     // BytesReturned
                                     0)) {                       // Ptr to Overlapped structure

                    code = GetLastError();

                    printf("DeviceIoControl failed with error 0x%x\n", code);

                    return(code);
                }

                printf("This is %d\n", i+1);
                Sleep(500);

            }

            printf("7 Segment mask:  0x%x\n", sevenSegment);
            break;

        case 0:
        default:

            CloseHandle(deviceHandle);

            //
            // zero is get out!
            //
            return(0);

        }
    }   
}


///////////////////////////////////////////////////////////////////////////////
//
//  FindUSBFX2LKDevice
//
//    This routine tries to return a handle to a USB FX2 Learning Kit device.
//     If multiple devices are found, a handle to the first available
//     one found is returned;
//
//  INPUTS:
//
//      None
//
//  OUTPUTS:
//
//      Handle - Upon successful return, this is filled in 
//                with a valid, open handle to a USB FX2 device.
//                HANDLE must be closed by the caller. 
//
//  RETURNS:
//
//      TRUE if a device has been found and Handle contains
//       a valid HANDLE. FALSE otherwise.
//
//
//  NOTES:
//
///////////////////////////////////////////////////////////////////////////////
BOOLEAN 
FindUSBFX2LKDevice(
    PHANDLE Handle
    ) {

    HDEVINFO                         devInfo;
    SP_DEVICE_INTERFACE_DATA         devInterfaceData;
    PSP_DEVICE_INTERFACE_DETAIL_DATA devInterfaceDetailData = NULL;
    ULONG                            devIndex;
    ULONG                            requiredSize;
    ULONG                            code = ERROR_SUCCESS;
    PCHAR                            devicePath = NULL;


    //
    // Open a handle to the device using the 
    //  device interface that the driver registers
    //
    //

    //
    // Get the device information set for all of the
    //  devices of our class (the GUID we defined
    //  in nothingioctl.h and registered in the driver
    //  with DfwDeviceCreateDeviceInterface) that are present in the 
    //  system
    //
    devInfo = SetupDiGetClassDevs(&GUID_OSR_USBFX2LK_INTERFACE,
                                  NULL,
                                  NULL,
                                  DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);

    if (devInfo == INVALID_HANDLE_VALUE) {

        printf("SetupDiGetClassDevs failed with error 0x%x\n", GetLastError());

        return FALSE;

    }

    //
    // Now get information about each device installed...
    //
    
    //
    // This needs to be set before calling
    //  SetupDiEnumDeviceInterfaces
    //
    devInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);

    //
    // Start with the first device...
    //
    devIndex = 0;

    while (SetupDiEnumDeviceInterfaces(devInfo,
                                       NULL,
                                       &GUID_OSR_USBFX2LK_INTERFACE,
                                       devIndex++, 
                                       &devInterfaceData)) {

        //
        // If you actually had a reason to keep
        //  track of all the devices in the system
        //  you obviously wouldn't want to just
        //  throw these away. Since we're just 
        //  running through to print them out
        //  and picking whatever the last one
        //  is we'll alloc and free these
        //  as we go...
        //
        if (devInterfaceDetailData != NULL) {

            free(devInterfaceDetailData);

            devInterfaceDetailData = NULL;

        }

        //
        // The entire point of this exercise is
        //  to get a string that we can hand to 
        //  CreateFile to get a handle to the device,
        //  so we need to call SetupDiGetDeviceInterfaceDetail
        //  (which will give us the string we need)
        //

        //
        // First call it with a NULL output buffer to
        //  get the number of bytes needed...
        //
        if (!SetupDiGetDeviceInterfaceDetail(devInfo,
                                             &devInterfaceData,
                                             NULL,
                                             0,
                                             &requiredSize,
                                             NULL)) {

            code = GetLastError();

            //
            // We're expecting ERROR_INSUFFICIENT_BUFFER.
            //  If we get anything else there's something
            //  wrong...
            //
            if (code != ERROR_INSUFFICIENT_BUFFER) {

                printf("SetupDiGetDeviceInterfaceDetail failed with error 0x%x\n", code);

                //
                // Clean up the mess...
                //
                SetupDiDestroyDeviceInfoList(devInfo);
                
                return FALSE;

            }

        }

        //
        // Allocated a PSP_DEVICE_INTERFACE_DETAIL_DATA...
        //
        devInterfaceDetailData = 
                (PSP_DEVICE_INTERFACE_DETAIL_DATA) malloc(requiredSize);

        if (!devInterfaceDetailData) {

            printf("Unable to allocate resources...Exiting\n");

            //
            // Clean up the mess...
            //
            SetupDiDestroyDeviceInfoList(devInfo);

            return FALSE;

        }

        //
        // This needs to be set before calling
        //  SetupDiGetDeviceInterfaceDetail. You
        //  would *think* that you should be setting
        //  cbSize to requiredSize, but that's not the 
        //  case. 
        //
        devInterfaceDetailData->cbSize = 
                    sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);


        if (!SetupDiGetDeviceInterfaceDetail(devInfo,
                                             &devInterfaceData,
                                             devInterfaceDetailData,
                                             requiredSize,
                                             &requiredSize,
                                             NULL)) {

            printf("SetupDiGetDeviceInterfaceDetail failed with error 0x%x\n", GetLastError());

            //
            // Clean up the mess...
            //
            SetupDiDestroyDeviceInfoList(devInfo);

            free(devInterfaceDetailData);

            return FALSE;

        }

        //
        // Got one!
        //
        printf("Device found! %s\n", devInterfaceDetailData->DevicePath);

        //
        // We don't really care which one we get, 
        //  just try to open each one and quit when we succeeed...
        //
        *Handle = CreateFile(devInterfaceDetailData->DevicePath,  // Name of the NT "device" to open
                             GENERIC_READ|GENERIC_WRITE,  // Access rights requested
                             0,                           // Share access - NONE
                             0,                           // Security attributes - not used!
                             OPEN_EXISTING,               // Device must exist to open it.
                             0,                           // Open for overlapped I/O
                             0);                          // extended attributes - not used!

        if (*Handle == INVALID_HANDLE_VALUE) {

            printf("CreateFile failed with error 0x%x\n", GetLastError());

        } else {

            SetupDiDestroyDeviceInfoList(devInfo);
        
            free(devInterfaceDetailData);

            return TRUE;

        }

    }

    //
    // We're here if we ran our of devices to enumarate or if
    //  something went wrong with our initial call to 
    //  SetupDiEnumDeviceInterfaces
    //

    if (code != ERROR_NO_MORE_ITEMS) {

        //
        // Something tr
        //
        printf("SetupDiGetDeviceInterfaceDetail failed with error 0x%x\n", code);
        
        //
        // Clean up the mess...
        //
        return FALSE;

    }

    //
    // ERROR_NO_MORE_ITEMS means that there are either no
    //  devices to enumerate or all of the devices 
    //  refused our open request.
    //
    SetupDiDestroyDeviceInfoList (devInfo);
    
    printf("Unable to find or open any OSR USB FX2 devices!\n");

    return FALSE;

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成a人无v码亚洲福利| 欧美一区二区三区视频免费 | 亚洲自拍偷拍麻豆| 免费在线观看视频一区| 91社区在线播放| 久久午夜国产精品| 日日夜夜精品视频免费| 色综合久久中文综合久久97| 精品国产乱码久久久久久牛牛| 亚洲免费观看高清完整版在线观看| 国产麻豆视频精品| 欧美一区二区三区视频在线| 一区二区三区欧美久久| 97se亚洲国产综合在线| 国产欧美日韩精品一区| 久久成人麻豆午夜电影| 精品视频999| 依依成人综合视频| 99久久精品国产网站| 国产欧美日本一区视频| 国内精品伊人久久久久影院对白| 91精品国产欧美日韩| 亚洲影院理伦片| 日本丶国产丶欧美色综合| 成人免费在线播放视频| 粉嫩在线一区二区三区视频| 久久久久久久久一| 国产美女主播视频一区| 久久―日本道色综合久久| 免费成人你懂的| 69堂成人精品免费视频| 亚洲成a人v欧美综合天堂| 欧美午夜电影一区| 亚洲福利视频三区| 欧美日韩日本视频| 亚洲一区二区综合| 欧美日韩国产不卡| 日韩专区一卡二卡| 欧美一卡二卡三卡四卡| 日本免费新一区视频| 日韩一区二区视频| 美女在线观看视频一区二区| 欧美变态tickle挠乳网站| 蜜臀va亚洲va欧美va天堂 | 在线观看欧美精品| 亚洲一二三级电影| 91麻豆精品国产91久久久久| 美女视频网站久久| 国产视频一区二区三区在线观看| 国产精品99久久久久久似苏梦涵| 国产情人综合久久777777| 成人国产精品免费| 一区二区三区在线免费播放| 欧美日韩在线精品一区二区三区激情 | 午夜精品123| 精品国产污污免费网站入口| 成人精品视频一区二区三区尤物| 亚洲欧美在线aaa| 欧美日韩一本到| 国产在线一区二区综合免费视频| 国产欧美日韩另类视频免费观看| 色婷婷亚洲一区二区三区| 婷婷久久综合九色综合绿巨人| 精品久久久久久综合日本欧美| 成人免费看黄yyy456| 午夜婷婷国产麻豆精品| 精品久久久久久久久久久久包黑料| 大尺度一区二区| 午夜视频在线观看一区二区| 2017欧美狠狠色| 色婷婷综合久久久久中文一区二区 | 日韩高清不卡一区二区| 欧美精彩视频一区二区三区| 欧美私模裸体表演在线观看| 精品一区二区三区在线播放视频| 国产精品久久久久久亚洲毛片 | 欧美久久一二三四区| 国产麻豆日韩欧美久久| 亚洲午夜成aⅴ人片| 26uuu亚洲| 欧美日韩一级视频| 成人动漫一区二区在线| 美日韩一区二区| 亚洲另类春色国产| 国产日本欧美一区二区| 欧美老人xxxx18| 一本色道**综合亚洲精品蜜桃冫 | 精品久久久久久综合日本欧美| 91社区在线播放| 大陆成人av片| 国产呦萝稀缺另类资源| 青草av.久久免费一区| 一区二区三区在线免费| 国产精品久久久爽爽爽麻豆色哟哟| 欧美自拍偷拍午夜视频| 国产成人精品一区二区三区四区 | 色婷婷精品大在线视频 | 亚洲精品国产视频| 国产亚洲欧洲一区高清在线观看| 91精品国产综合久久小美女| 欧洲一区在线观看| 色婷婷亚洲综合| 色综合天天综合网天天狠天天| 国产·精品毛片| 国产美女主播视频一区| 久久精品国产久精国产| 三级久久三级久久| 亚洲国产视频一区| 综合自拍亚洲综合图不卡区| 粉嫩av一区二区三区| 国产乱人伦精品一区二区在线观看| 亚洲影视在线播放| 国产精品美女一区二区| 日本一区二区三区国色天香 | 欧美性视频一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲女子a中天字幕| 久久这里只有精品视频网| 666欧美在线视频| 欧美综合视频在线观看| 欧美探花视频资源| 在线精品视频一区二区| 成人美女视频在线观看18| 国产原创一区二区三区| 免费观看日韩av| 久久精品国产免费| 美女mm1313爽爽久久久蜜臀| 亚洲第一成年网| 亚洲成人免费观看| 亚洲国产另类精品专区| 依依成人综合视频| 一区二区三区丝袜| 亚洲欧美日韩成人高清在线一区| 国产精品欧美精品| 中文字幕亚洲视频| 制服丝袜亚洲播放| 久久夜色精品国产欧美乱极品| 3d成人h动漫网站入口| 欧美视频一区二区三区| 91福利视频在线| 在线看国产一区二区| 欧美一区二区三区视频在线| 日韩欧美在线一区二区三区| 日韩亚洲欧美一区| www久久久久| 久久精品人人做| 一区二区三区日韩| 亚洲国产精品麻豆| 婷婷开心激情综合| 久久成人麻豆午夜电影| 国产精品亚洲午夜一区二区三区 | 久久福利资源站| 成人黄色网址在线观看| 色婷婷久久久久swag精品| 欧美午夜视频网站| 欧美剧在线免费观看网站| 精品国产乱码久久久久久蜜臀| 国产午夜亚洲精品午夜鲁丝片 | 一区二区在线观看视频| 亚洲福利国产精品| 国产一区二区美女| 91高清视频免费看| 欧美主播一区二区三区美女| 2023国产精品自拍| 亚洲欧美日韩人成在线播放| 亚洲va在线va天堂| 国产精品18久久久久| 在线成人免费观看| 国产日产欧美一区| 亚洲狠狠爱一区二区三区| 久久国产精品区| 激情文学综合网| 91精品久久久久久久91蜜桃| 欧美韩日一区二区三区四区| 亚洲视频1区2区| 精品午夜久久福利影院| av在线这里只有精品| 精品国产乱码久久久久久久久| 亚洲欧美另类久久久精品2019| 奇米综合一区二区三区精品视频| 高清不卡在线观看| 精品国产免费人成电影在线观看四季| 国产精品午夜电影| 免费成人你懂的| 日本高清无吗v一区| 国产日韩亚洲欧美综合| 男女男精品视频| 日本韩国精品一区二区在线观看| 欧美videos大乳护士334| 国产女人18毛片水真多成人如厕| 午夜精品福利一区二区三区av | 国产一区二区三区蝌蚪| 欧美午夜影院一区| 亚洲视频中文字幕| 国模无码大尺度一区二区三区| 欧美视频精品在线观看| 久久久精品一品道一区| 国产剧情在线观看一区二区| 欧美日韩国产高清一区二区| 自拍偷自拍亚洲精品播放|