IOCTL_STORAGE_EJECTION_CONTROL IOCTL (ntddstor.h)

Mengunci perangkat untuk mencegah penghapusan media. Jika pengandar dapat mencegah media dihapus saat kandar sedang digunakan, driver akan menonaktifkan atau memfungsikan mekanisme yang mengeluarkan media, sehingga mengunci kandar. Penelepon harus membuka perangkat dengan FILE_READ_ATTRIBUTES untuk mengirim permintaan ini.

Tidak seperti IOCTL_STORAGE_MEDIA_REMOVAL, driver melacak IOCTL_STORAGE_EJECTION_CONTROL permintaan oleh pemanggil dan mengabaikan permintaan buka kunci yang belum menerima permintaan kunci dari penelepon yang sama, sehingga mencegah penelepon lain membuka kunci drive.

Driver untuk perangkat media yang dapat dilepas - dapat mendukung IOCTL ini harus melakukan hal berikut:

  1. Pertahankan jumlah kunci, ditandai oleh pemanggil, di ekstensi objek perangkat.
  2. Pertahankan jumlah kunci per perangkat fisik.
  3. Ketika dipanggil dengan IOCTL ini, jika bendera untuk mencegah penghapusan media diatur, meningkatkan jumlah; jika bendera jelas dan driver sebelumnya telah menerima permintaan kunci dari pemanggil yang sama, kurangi jumlahnya.
  4. Cegah penghapusan media kecuali semua jumlah kunci adalah nol.
Dalam keadaan normal, penelepon yang mengunci perangkat menggunakan IOCTL_STORAGE_EJECTION_CONTROL, membuka kunci perangkat dengan mengirim IOCTL_STORAGE_EJECTION_CONTROL lagi dengan Irp->AssociatedIrp.SystemBuffer diatur ke nilai boolean FALSE. Namun, terkadang penelepon gagal membuka kunci perangkat dengan benar.

Untuk memastikan bahwa kunci penghapusan media dilepas dengan benar, driver kelas melacak penelepon yang mengunci media dengan IOCTL_STORAGE_EJECTION_CONTROL. Jika penelepon mengakhiri tanpa membuka kunci perangkat, driver kelas membuka kunci perangkat.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Buffer di Irp-AssociatedIrp.SystemBuffer> berisi nilai Boolean, dengan TRUE menunjukkan bahwa driver harus mengunci media di drive.

Panjang buffer input

Panjang Boolean.

Buffer output

Tidak ada.

Panjang buffer output

Tidak ada.

Blok status

Bidang Informasi diatur ke nol. Bidang Status diatur ke STATUS_SUCCESS, atau mungkin ke STATUS_INVALID_DEVICE_REQUEST, STATUS_NO_MEDIA_IN_DEVICE, atau STATUS_DEVICE_NOT_CONNECTED.

Persyaratan

Persyaratan Nilai
Header ntddstor.h (termasuk Ntddstor.h)

Lihat juga

IOCTL_STORAGE_EJECT_MEDIA