.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
输出调试文本 (系统_通过逻辑盘符获取物理设备号 (“C”))
返回 (0) ' 可以根据您的需要返回任意数值
.子程序 系统_通过逻辑盘符获取物理设备号, 整数型
.参数 盘符, 文本型
.局部变量 hDevice, 整数型
.局部变量 dwBufLen, 整数型
.局部变量 szBuf, 字节集
.局部变量 bRet, 逻辑型
hDevice = CreateFileA (“\\.\” + 盘符 + “:”, 位或 (#GENERIC_READ, #GENERIC_WRITE), 位或 (#FILE_SHARE_READ, #FILE_SHARE_WRITE), #NULL, #OPEN_EXISTING, 0, #NULL)
.如果真 (hDevice = #INVALID_HANDLE_VALUE)
输出调试文本 (取错误信息文本_API (hDevice, “Kernel32.dll”))
返回 (#INVALID_HANDLE_VALUE)
.如果真结束
dwBufLen = 12
szBuf = 取空白字节集 (dwBufLen)
bRet = DeviceIoControl1 (hDevice, #IOCTL_STORAGE_GET_DEVICE_NUMBER, #NULL, 0, 取指针_字节集型 (szBuf), dwBufLen, #NULL, #NULL)
CloseHandle (hDevice)
.如果真 (bRet)
返回 (取字节集数据 (szBuf, #整数型, 5))
.如果真结束
返回 (#INVALID_HANDLE_VALUE)