Yoshitu | Voici mon code :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <winioctl.h>
- #define CD "\\\\.\\e:"
- int main()
- {
- HANDLE cdrom;
- LPVOID *t;
- BOOL resultat;
- DWORD truc, truc2 = 0;
- DISK_GEOMETRY buff;
- unsigned char i;
- char buffer[256];
- printf("%p",buffer);
- cdrom = CreateFile(CD, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
- if(cdrom == INVALID_HANDLE_VALUE) // cannot open the drive
- {
- MessageBox(NULL, "Le lecteur que vous avez indiqué est impossible à ouvrir pour une raison absolument inconnue :p\nVous avez sans doute mal tapé la lettre du lecteur.", "Erreur d'ouverture", MB_ICONEXCLAMATION);
- return (FALSE);
- }
- resultat = DeviceIoControl(cdrom, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &buff, sizeof(buff), &truc, NULL);
- if(resultat)
- {
- printf("%s :\n", CD);
- printf("- Cylindres = %ld\n", buff.Cylinders);
- printf("- Pistes/Cylindres = %ld\n", (ULONG) buff.TracksPerCylinder);
- printf("- Secteurs/Pistes = %ld\n", (ULONG) buff.SectorsPerTrack);
- printf("- Octets/Secteurs = %ld\n", (ULONG) buff.BytesPerSector);
- printf("\n" );
- }
- else
- {
- printf("%ld",GetLastError());
- MessageBox(NULL, "La géométrie du disque (têtes, cylindres, etc..) est impossible à obtenir.", "Erreur de lecture", MB_ICONEXCLAMATION);
- return (FALSE);
- }
- resultat = ReadFile(cdrom, &buffer, 253, &truc2, NULL);
- if(resultat)
- {
- printf("%ld bytes lus", truc2);
- }
- else
- {
- printf("Erreur %ld", GetLastError());
- }
- CloseHandle(cdrom);
- return 0;
- }
|
Lorsque j'arrive a ReadFile j'ai une erreur obtenue par getlasterror (erreur 87 : paramètre incorrect)
Que faire ??? |