当前位置: 主页 > 百科 > 计算机编程 > 易语言源码 >
-16 Comments

源码编写—扇区读写

发布于:2016-07-05  |   作者:http://www.zxjsq.net  |   已聚集:人围观

.版本 2

.支持库 spec

.局部变量 i, 整数型

.局部变量 文件句柄, 整数型


调试输出 (取物理磁盘个数 ())


调试输出 (读扇区 (0, 63))


.子程序 取物理磁盘个数, 整数型

.局部变量 i, 整数型

.局部变量 文件句柄, 整数型

.局部变量 总数, 整数型


总数 = 0

.计次循环首 (1024, i)

    文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (i - 1), 2147483648, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

    .如果 (文件句柄 > 0)

        CloseHandle (文件句柄)

        总数 = 总数 + 1

    .否则

        CloseHandle (文件句柄)

        跳出循环 ()

    .如果结束


.计次循环尾 ()

返回 (总数)


.子程序 读扇区, 字节集, 公开

.参数 驱动器位置, 整数型, , 0为主盘

.参数 扇区号, 整数型

.局部变量 文件句柄, 整数型

.局部变量 读写结果, 逻辑型

.局部变量 数据缓冲区, 字节集, 静态

.局部变量 dwCB, 整数型

.局部变量 读写位置, 整数型

.局部变量 Q, 字节集

.局部变量 P, 整数型

.局部变量 读取到的数据, 字节集


读取到的数据 = {  }

文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (驱动器位置), 2147483648, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

.如果真 (文件句柄 = -1)

    返回 (读取到的数据)

.如果真结束

读写位置 = SetFilePointer (文件句柄, 512 × 扇区号, 0, 0)

数据缓冲区 = 取空白字节集 (512)

读写结果 = ReadFileD (文件句柄, 数据缓冲区, 512, 取整数指针 (dwCB, dwCB, 0), 0)

读取到的数据 = 数据缓冲区

CloseHandle (文件句柄)

返回 (读取到的数据)


.子程序 写扇区, 整数型, 公开

.参数 驱动器位置, 整数型, , 0为主盘

.参数 扇区号, 整数型

.参数 欲写入数据, 字节集

.局部变量 文件句柄, 整数型

.局部变量 读写结果, 整数型

.局部变量 数据缓冲区, 字节集, 静态

.局部变量 读写位置, 整数型

.局部变量 dwCB, 整数型


文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (驱动器位置), 1073741824, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

.如果真 (文件句柄 = -1)

    返回 (0)

.如果真结束

读写位置 = SetFilePointer (文件句柄, 512 × 扇区号, 0, 0)

数据缓冲区 = 取空白字节集 (512)

拷贝内存_ (数据缓冲区, 到字节集 (欲写入数据), 取字节集长度 (欲写入数据))

读写结果 = WriteFile (文件句柄, 数据缓冲区, 512, 取整数指针 (dwCB, dwCB, 0), 0)

CloseHandle (文件句柄)

返回 (读写结果)


标签:                   喜欢:收藏