Bonjour,

Je cherche à utiliser les fonctions IOCTL_STORAGE_EJECTION_CONTROL, IOCTL_STORAGE_RESERVE, IOCTL_STORAGE_RELEASE de Device IoControl afin de bloquer l'autorun d'un CDROM et de bloquer l'ouverture manuelle du lecteur durant une manipulation.

Je n'arrive jamais à effectuer ces actions sans avoir un code d'erreur du type "paramètre incorrect".

Mon code est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
HANDLE hTemp;
DWORD dwTemp;
PREVENT_MEDIA_REMOVAL pmrTemp;
 
dwTemp = 0;
if (::DeviceIoControl(hTemp, IOCTL_STORAGE_RESERVE, NULL, 0, NULL, 0, &dwTemp, NULL))
     AfxMessageBox (_T("CD-DVD Drive reserved successfully."));
else
     AfxMessageBox (_T("CD-DVD Drive reserved fail"));
 
pmrTemp.PreventMediaRemoval = FALSE;
if (::DeviceIoControl(hTemp, IOCTL_STORAGE_EJECTION_CONTROL, &pmrTemp, sizeof(PREVENT_MEDIA_REMOVAL), NULL, 0, &dwTemp, NULL))
     AfxMessageBox (_T("Unlock driver successed."));
else
     AfxMessageBox (_T("Unlock driver failed"));
Quelqu'un pourrez m'expliquer pourquoi j'ai un echec à chaque action?

Merci d'avance.

Lnlshaped