000
28.11.2005, 16:03 Uhr
LowFly
|
hy ich habe eine Beispielanwendung die zum auslesen der Festplatteninfos IOCTL_DISK_GET_DRIVE_LAYOUT_EX verwendet.
wenn ich das jetzt in meiner anwendung verwenden will geht das nicht weil mein compiller motzt das er IOCTL_DISK_GET_DRIVE_LAYOUT_EX & DISK_GET_DRIVE_LAYOUT_EX nicht kennt. ich hab in der msdn auch schon geschaut die sagen zwar das man ne ntdddisk.h includen soll aber wenn ich das mach bekomm ich fehlermeldungen in der ntdddisk.h. ferner hat auch die beispielanwendung nicht die ntdddisk.h eingebunden. auch hab ich schon sämtliche include dateien durch die auch die beispielanwendung verwendet aber es geht nicht, weis jemand rat?
C++: |
void CHDDCtrl::SetQueryPartition(int nPartitionIndex) { HANDLE hDevice; CString HardDisk,sError; DWORD cbBytesReturned;
HardDisk.Format("\\\\.\\PhysicalDrive%d",nPartitionIndex);
hDevice=CreateFile(HardDisk,0,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,0,NULL);
if (hDevice!=INVALID_HANDLE_VALUE) { memset((void*)&m_LayoutInfo, 0, sizeof(m_LayoutInfo)); if(!DeviceIoControl (hDevice, IOCTL_DISK_GET_DRIVE_LAYOUT_EX,// NULL, 0, &m_LayoutInfo, sizeof (DISK_GET_DRIVE_LAYOUT_EX), &cbBytesReturned, NULL)) { sError.Format("IOCTL_DISK_GET_DRIVE_LAYOUT failed, error code: 0x%lX\r\n", GetLastError()); szMsg.MsgBoxOkStop(sError); } } else { sError.Format("Can not Query Partitions, error code: 0x%lX\r\n", GetLastError()); szMsg.MsgBoxOkStop(sError); } }
|
|