- Private Function AllowMediaRemoval(ByRef vsDriveLetter As String, Optional vbAllow As Boolean = False) As Boolean
- Dim hDrive As Long
- Dim nLength As Long
- Dim tPMR As PREVENT_MEDIA_REMOVAL
- '# On créé un handle vers le lecteur
- hDrive = CreateFile("\\.\" & vsDriveLetter & ":", GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
- If hDrive <> INVALID_HANDLE_VALUE Then
- tPMR.PreventMediaRemoval = Abs(Not vbAllow)
- '# On appelle la fonction de lock/unlock
- DeviceIoControl hDrive, IOCTL_STORAGE_MEDIA_REMOVAL, tPMR, LenB(tPMR), 0, 0, nLength, ByVal 0&
- '# On libère le handle
- CloseHandle hDrive
- End If
- End Function
Private Function AllowMediaRemoval(ByRef vsDriveLetter As String, Optional vbAllow As Boolean = False) As Boolean
Dim hDrive As Long
Dim nLength As Long
Dim tPMR As PREVENT_MEDIA_REMOVAL
'# On créé un handle vers le lecteur
hDrive = CreateFile("\\.\" & vsDriveLetter & ":", GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
If hDrive <> INVALID_HANDLE_VALUE Then
tPMR.PreventMediaRemoval = Abs(Not vbAllow)
'# On appelle la fonction de lock/unlock
DeviceIoControl hDrive, IOCTL_STORAGE_MEDIA_REMOVAL, tPMR, LenB(tPMR), 0, 0, nLength, ByVal 0&
'# On libère le handle
CloseHandle hDrive
End If
End Function