扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Windows涓璬eviceiocontrol鍑芥暟鎬庝箞璋冪敤

扬州沐宇科技
2023-11-07 15:08:13
windows

鍦╓indows涓紝浣跨敤DeviceIoControl鍑芥暟鏉ヤ笌璁惧杩涜閫氫俊銆侱eviceIoControl鍑芥暟鐨勮皟鐢ㄦ柟寮忓涓嬶細

  1. 鎵撳紑璁惧鍙ユ焺锛?/p>

    HANDLE hDevice = CreateFile(
        L"\\\\.\\DeviceName",  // 璁惧鍚嶇О锛屽\\\\.\\COM1
        GENERIC_READ | GENERIC_WRITE,  // 璁块棶鏉冮檺
        0,  // 鍏变韩妯″紡锛屼竴鑸缃负0
        NULL,  // 瀹夊叏鎻忚堪绗︼紝涓€鑸缃负NULL
        OPEN_EXISTING,  // 鎵撳紑鐜版湁璁惧
        FILE_ATTRIBUTE_NORMAL,  // 鏂囦欢灞炴€?/span>
        NULL);  // 妯℃澘鍙ユ焺锛屼竴鑸缃负NULL
    

    鍏朵腑锛?code>DeviceName鏄澶囩殑鍚嶇О锛屽彲浠ユ槸涓插彛(COM1, COM2, 绛夌瓑)銆佺鐩?\Device\Harddisk0\Partition1)绛夈€?/p>

  2. 璁剧疆鎴栬幏鍙栬澶囩殑鎺у埗鍛戒护锛?/p>

    DWORD dwBytesReturned;
    BOOL bResult = DeviceIoControl(
        hDevice,  // 璁惧鍙ユ焺
        dwIoControlCode,  // 鎺у埗浠g爜锛屽IOCTL_DISK_GET_DRIVE_GEOMETRY
        lpInBuffer,  // 杈撳叆缂撳啿鍖猴紝鍙€?/span>
        nInBufferSize,  // 杈撳叆缂撳啿鍖哄ぇ灏忥紝鍙€?/span>
        lpOutBuffer,  // 杈撳嚭缂撳啿鍖猴紝鍙€?/span>
        nOutBufferSize,  // 杈撳嚭缂撳啿鍖哄ぇ灏忥紝鍙€?/span>
        &dwBytesReturned,  // 杩斿洖鐨勫瓧鑺傛暟
        NULL);  // 寮傛鎿嶄綔鍙ユ焺锛屼竴鑸缃负NULL
    

    鍏朵腑锛?code>dwIoControlCode鏄澶囩殑鎺у埗鍛戒护锛屽彲浠ユ槸IOCTL_DISK_GET_DRIVE_GEOMETRY绛夈€?code>lpInBuffer鍜?code>nInBufferSize鏄緭鍏ョ紦鍐插尯鍜屽ぇ灏忥紝鐢ㄤ簬浼犻€掑懡浠ゆ墍闇€鐨勫弬鏁般€?code>lpOutBuffer鍜?code>nOutBufferSize鏄緭鍑虹紦鍐插尯鍜屽ぇ灏忥紝鐢ㄤ簬鎺ユ敹璁惧杩斿洖鐨勪俊鎭€?code>&dwBytesReturned鐢ㄤ簬杩斿洖瀹為檯浼犺緭鐨勫瓧鑺傛暟銆?/p>

  3. 鍏抽棴璁惧鍙ユ焺锛?/p>

    CloseHandle(hDevice);
    

    浣跨敤瀹孌eviceIoControl鍑芥暟鍚庯紝闇€瑕佸叧闂澶囧彞鏌勪互閲婃斁璧勬簮銆?/p>

娉ㄦ剰浜嬮」锛?/p>

  • 闇€瑕佸寘鍚?code>windows.h澶存枃浠躲€?/li>
  • 蹇呴』浠ョ鐞嗗憳鏉冮檺杩愯绋嬪簭銆?/li>
  • 鎺у埗浠g爜鍜屽弬鏁扮殑鍏蜂綋鍊煎強浣跨敤鏂规硶闇€瑕佹牴鎹澶囬┍鍔ㄧ▼搴忕殑鎺ュ彛鏂囨。鏉ョ‘瀹氥€?/li>

扫码添加客服微信