在Windows下把所有的设备都当作文件进行操作,对磁盘的某个扇区读写,可以使用CreateFile()函数。这里不是用“DISK1”、“DISK2”等去标识某一个物理存在的硬盘,这里需要以一定的格式指定所需访问的磁盘分区。对于逻辑分区X,其格式为“\\.\X”。
CreateFile()函数的原型如下:
HANDLE CreatFile(
LPCTSTR lpFileName,
DWord dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
Dword dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile );
各参数说明如下:
ØlpFileName:所要访问的磁盘分区,格式为“\\.\X”。
ØdwDesiredAccess:写磁盘设置为GENERIC_WRITE,读磁盘设置为GENERIC_READ。
ØdwShareMode:读写磁盘均设置为FILE_SHARE_WRITE。
ØLpSecurityAttributes:读写磁盘均设置为NULL。
ØDwCreationDisposition:由于访问的是事实上已经存在的磁盘扇区,因此只能以OPEN_EXISTING标志设置dwCreationDisposition参数指出将要打开已经存在的文件(设备)。
ØdwFlagsAndAttributes读写磁盘均设置为0。
ØHTemplateFile:读写磁盘均设置为NULL。