在Windows NT上,应用程序可以使用DeviceIoControl功能对软盘驱动器,硬盘驱动器,磁带驱动器或CD-ROM驱动器执行直接输入和输出操作,或检索有关软盘驱动器,硬盘驱动器,磁带驱动器或CD-ROM驱动器的信息。以下示例演示如何检索有关系统中第一个物理驱动器的信息。它使用CreateFile功能获取第一个物理驱动器的设备句柄,然后使用IOCTL_DISK_GET_DRIVE_GEOMETRY控制代码的DeviceIoControl函数填充DISK_GEOMETRY结构,其中包含有关该驱动器的信息。
BOOL GetDriveGeometry(DISK_GEOMETRY *pdg)
{
HANDLE hDevice;
BOOL fResult;
DWORD cb;
hDevice = CreateFile("\\\\.\\PhysicalDrive0",
0, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == NULL)
return FALSE;
fResult = DeviceIoControl(hDevice,
IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0,
pdg, sizeof(*pdg), &cb, (LPOVERLAPPED) NULL);
如果(!fResult)
return FALSE;
CloseHandle(hDevice);
}
此示例仅在Windows NT上运行时才会成功,原因有两个:
*标准设备输入/输出控制代码仅在Windows NT上可用
*在Windows 95上,应用程序必须在CreateFile函数__中指定虚拟设备驱动程序,而不是特定设备。