Salut tout le monde,
Je cherche desesperement de faire fonction l'API DeviceIOControl mais il n'y a rien à faire elle ne passe pas sur mon PC.
Pour Info : je possede 2 HDD + 1 DVD + 1 CD
respectivement affecté C,D,E,F
Voila le code :
HANDLE hDevice = CreateFile("\\\\.\\E:", 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (hDevice!=INVALID_HANDLE_VALUE)
{
GET_MEDIA_TYPES mType;
DWORD bReturn;
BOOL bResult=DeviceIoControl(hDevice,IOCTL_STORAGE_GET_MEDIA_TYPES_EX, NULL, 0, &mType, sizeof(mType), &bReturn, NULL);
if (bResult)
{
if (mType.DeviceType==FILE_DEVICE_CD_ROM) cout << "CD-ROM";
if (mType.DeviceType==FILE_DEVICE_DISK) cout << "DISK";
}
CloseHandle(hDevice);
}
L'API CreateFile retourne bien un Handle, mais parcontre l'API DeviceIOControl retourne FALSE;
Si par contre j'affecte comme unité logique C ou D à la place d'une des unités E ou F, là ca passe.
Si quelqu'un à une idée, j'ai beau retourné MSDN ou les exemples sur le NET je ne vois pas.
Merci,
Yann.