Hallo allemaal,
ik ben bezig met een programma dat wat info van een ntfs volume haalt, dit is de code
er gaat wat fout bij de aanroep van DeviceIoControl en met GetLastError() krijg ik de error "Incorrect Function" terug, er is dus duidelijk wat mis met die aanroep
Na heel wat uren zoeken
ben ik er nog steeds niet uit, misschien zie ik wat over het hoofd.
De compiler geeft geen error of warning (visual c++ 6), en als ik zonder error check door ga dan crashed het programma.
greetz rremzie
ik ben bezig met een programma dat wat info van een ntfs volume haalt, dit is de code
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
| #ifndef _WIN32_WINNT #define _WIN32_WINNT 0x0400 #endif #include <windows.h> #include <winioctl.h> #include <stdio.h> int Error(); int main() { NTFS_VOLUME_DATA_BUFFER dataBuffer; BOOL bResult; HANDLE hVolume; DWORD dSize; hVolume = CreateFile("\\\\.\\PhysicalDrive0",0,FILE_SHARE_READ |FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (hVolume == INVALID_HANDLE_VALUE) // check if CreateFile was succesfull { printf("Invalid Handle\n"); return 0; } bResult = DeviceIoControl(hVolume, FSCTL_GET_NTFS_VOLUME_DATA, NULL, 0, &dataBuffer, sizeof(NTFS_VOLUME_DATA_BUFFER),&dSize,NULL); CloseHandle(hVolume); if(Error()) // error checking return 0; printf("Volume serial number: %n", dataBuffer.VolumeSerialNumber); return 0; } int Error() { LPVOID lpMsgBuf; FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL,GetLastError(),0, (LPTSTR) &lpMsgBuf,0,NULL); printf("Error: %s\n", (LPCTSTR)lpMsgBuf); return 1; return 0; } |
er gaat wat fout bij de aanroep van DeviceIoControl en met GetLastError() krijg ik de error "Incorrect Function" terug, er is dus duidelijk wat mis met die aanroep
Na heel wat uren zoeken
De compiler geeft geen error of warning (visual c++ 6), en als ik zonder error check door ga dan crashed het programma.
greetz rremzie
[ Voor 8% gewijzigd door Verwijderd op 25-10-2003 16:55 ]