社区
Windows SDK/API
帖子详情
DELPHI下如何读取磁盘扇区???
zz791224
2004-05-05 11:51:40
在DELPHI下如何读取磁盘扇区?求高手解释一下,最好有一个例子,谢谢了???
...全文
108
2
打赏
收藏
DELPHI下如何读取磁盘扇区???
在DELPHI下如何读取磁盘扇区?求高手解释一下,最好有一个例子,谢谢了???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ly_liuyang
2004-05-06
打赏
举报
回复
NT/2000/XP下通过DeviceIOControl的API可以实现
以VC版的最多见,Delphi的少见,但都可以的
pankun
2004-05-06
打赏
举报
回复
参考如下文章。
了解实模式编程的朋友都知道,可以利用BIOS的INT 13中断来进行磁盘的绝对读写,但在NT环境下,却不能使用INT 13中断来直接读写硬盘.在这里,我们可以利用CreateFile并将路径名设为"\\.\X:"来打开逻辑盘,并进行读写.在进里X为盘符.
CreateFile函数原型如下:
HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
lpFileName: 要打开的文件的名字
dwDesiredAccess: 如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息.
dwShareMode: 零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问
lpSecurityAttributes: 指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性
dwCreationDistribution: 建立方式
dwFlagsAndAttributes: 其它属性
hTemplateFile: 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性
下面的例子在Windows XP下编译通过, 其实现的功能为读取C盘的引导扇区,并将读出的数据显示出来.
program ReadDisk;
uses
SysUtils,
Windows;
var
Buf: array [0..511] of Byte; //数据缓冲区
ShowText, TmpStr: string;
FileHandle: THandle;
ReadCount, i: Cardinal;
begin
//打开磁盘
FileHandle := CreateFile('\\.\C:', GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
nil, OPEN_EXISTING, 0, 0);
if FileHandle = INVALID_HANDLE_VALUE then
begin
MessageBox(GetDesktopWindow, '打开磁盘失败', 'ERROR', MB_OK);
ExitProcess(0);
end;
//读出引导扇区数据
if ReadFile(FileHandle, Buf, 512, ReadCount, nil) then
begin
SetLength(ShowText, Length(Buf) * 3);
//将数据转为字串
for i := Low(Buf) to High(Buf) do
begin
TmpStr := Format('%2.2x ', [Buf[i]]);
CopyMemory(@ShowText[i*3+1], @TmpStr[1], 3);
end;
end;
MessageBox(GetDesktopWindow, PChar(ShowText), '引导扇区', MB_OK);
CloseHandle(FileHandle);
ExitProcess(0);
end.
Delphi
获取当前
磁盘
信息和
磁盘
空间信息
Delphi
10.3获取当前
磁盘
、
磁盘
空间、
扇区
字节等信息;仅供初学者交流学习
意天原始
磁盘
数据操作开发包(
磁盘
扇区
读写组件)
意天原始
磁盘
数据操作开发包(
磁盘
扇区
读写 组件)是意天软件推出的一款
磁盘
扇区
读写 操作底层开发包,主要用于开发人员操作
磁盘
数据, 其包括一个com组件和一个
磁盘
驱动 文件,通过该组件VB;CB;
Delphi
开发人员可以很方便的进行
磁盘
扇区
读写 操作,以完成读写(按
扇区
模式或字节模式)底层
磁盘
数据 工作,该组件完全解决VISTA下Win32API无法直接写
磁盘
数据 的问题,用该开发包在VISTA下也可以进行
磁盘
扇区
读写 操作,而且其
磁盘
扇区
读写 的接口与win2k xp 2003是一样的.该开发包采用驱动直接读写
磁盘
数据,因此绕过了Win32平台内部权限 检测机制,以使在VISTA下直接写硬盘数据成为现实,同时也使得
磁盘
扇区
读写 的速度更快,自主性更强.如果你的软件需要利用
磁盘
扇区
读写 功能,那么该组件是你最佳的选择,因为它可以让你的软件在几分钟之内拥有强大的驱动级的
磁盘
扇区
读写 功能!(注:不可用该开发包来实现恶意软件,否则后果自负!)
Delphi
XE10零基础实战快速入门
通过课堂上一个一个的实战例子,演示
Delphi
XE10的用法,最后通过一个完整的通讯录程序,让学员初步掌握软件开发的全部流程让零基础学员快速入门
Delphi
编程,快速掌握
Delphi
的使用方法,并能够制作出自己的软件来。为同学们下一步的提高打下坚实的基础。
Delphi
获取详细的电脑
磁盘
信息.rar
Delphi
获取详细的电脑
磁盘
信息,以C盘为例,将显示C盘的如下信息: 根目录:C:\ 每簇的
扇区
数:8 每个
扇区
的字节数:512 剩余簇数:8139313 总的簇数:15728895 剩余空间:31.049015045166G 总空间:60.0009727478027G 相关编程代码为: procedure TForm1.Button1Click(Sender: TObject); var path,p : String; S,B,F,T : DWord; VS,VB,VF,VT,M : variant; begin memo1.Clear; path := Trim(Edit1.Text); if path<>'' then begin GetDiskFreeSpace(Pchar(path),S,B,F,T); memo1.Lines.Add('根目录:' path '\'); memo1.Lines.Add('每簇的
扇区
数:' IntToStr(S)); memo1.Lines.Add('每个
扇区
的字节数:' IntToStr(B)); memo1.Lines.Add('剩余簇数:' IntToStr(F)); memo1.Lines.Add('总的簇数:' IntToStr(T)); VS:=S; VB:=B; VF:=F; VT:=T; M := VS*VB*VF; p := M/(1024*1024*1024); memo1.Lines.Add('剩余空间:' p 'G'); M := VS*VB*VT; p := M/(1024*1024*1024); memo1.Lines.Add('总空间:' p 'G'); end else Edit1.Text := 'C:'; end;
Delphi
使用Ring0技术读写物理
扇区
.rar
Delphi
基于Ring0技术读写Windows系统下的硬盘物理
扇区
,
磁盘
读写操作一例,包括了VxD和仿CIH两种方法,VxD方法中还包括了所调用控件的VC 源代码,并且包括了一个测试的例子,运行效果如演示截图所示。相关的源代码分享如下: IOR_next:longword;{ 为BCB的(MBZ for IORF_VERSION_002) 的客户链接 } IOR_func:word;{子功能号} IOR_status:word;{请求的状态} IOR_flags:longword;{请求控制标志} IOR_callback:procedure;{如果IORF_SYNC_COMMAND未设置,则为回调函数地址} IOR_start_addr:array[0..1]of longword;{相对开始地址} IOR_xfer_count:longword;{处理的
扇区
数} IOR_buffer_ptr:longword;{客户缓冲区指针} IOR_private_client:longword;{ BlockDev/IOS客户保留} IOR_private_IOS:longword;{IOS保留空间} IOR_private_port:longword;{端口驱动的私有区域} _ureq:Turequestor_usage; IOR_req_req_handle:longword;{请求句柄} IOR_req_vol_handle:longword;{媒体句柄,指向VRP结构} IOR_sgd_lin_phys:longword;{指向第一个物理SGD } IOR_num_sgds:byte;{物理SGD的数目} IOR_vol_designtr:byte;{视子功能号的不同,可能是以下两种情况:(1)A盘为0,B盘为1,C盘为2……(2)软盘是0-7F,硬盘是80-FF} IOR_ios_private_1:word;{由IOS保留强制对齐} IOR_reserved_2:array[0..1]of longword; {保留,内部使用}
Windows SDK/API
1,183
社区成员
22,335
社区内容
发帖
与我相关
我的任务
Windows SDK/API
Delphi Windows SDK/API
复制链接
扫一扫
分享
社区描述
Delphi Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章