IOCTL_STORAGE_PERSISTENT_RESERVE_OUT IOCTL (ntddstor.h)

Driver kelas penyimpanan generik (classpnp.sys) mengekspos antarmuka kontrol I/O (IOCTL) untuk mengeluarkan perintah Persistent Reserve Out. Perilaku perangkat penyimpanan ketika perintah Cadangan Persisten diterima dijelaskan dalam spesifikasi Perintah Utama SCSI - 2 (SPC-2). Antarmuka IOCTL mengharuskan pemanggil memiliki akses baca/tulis ke perangkat fisik untuk perintah Persistent Reserve Out. Aplikasi mode pengguna, layanan, dan driver mode kernel dapat menggunakan IOCTL ini untuk mengontrol reservasi persisten. Jika dipanggil dari driver, IOCTL ini harus dipanggil dari utas yang berjalan di IRQL < DISPATCH_LEVEL. IOCTL ini didefinisikan dengan FILE_READ_ACCESS dan FILE_WRITE_ACCESS, mengharuskan handel perangkat memiliki izin baca dan tulis untuk mengeluarkan perintah Cadangan Persisten.

Kode utama

IRP_MJ_DEVICE_CONTROL

Buffer input

Buffer di Irp-AssociatedIrp.SystemBuffer> berisi struktur PERSISTENT_RESERVE_COMMAND. Anda harus mengalokasikan buffer dari kumpulan yang tidak disejajarkan dan harus menyelaraskannya dengan benar untuk perangkat target dan adaptor.

PR_OUT. ServiceAction dapat berupa salah satu hal berikut:

  • RESERVATION_ACTION_REGISTER
  • RESERVATION_ACTION_RESERVE
  • RESERVATION_ACTION_RELEASE
  • RESERVATION_ACTION_CLEAR
  • RESERVATION_ACTION_PREEMPT
  • RESERVATION_ACTION_PREEMPT_ABORT
  • RESERVATION_ACTION_REGISTER_IGNORE_EXISTING

PR_OUT. Cakupan dapat berupa salah satu hal berikut:

  • RESERVATION_SCOPE_LU
  • RESERVATION_SCOPE_ELEMENT

PR_OUT. Jenis bisa menjadi salah satu dari berikut ini:

  • RESERVATION_TYPE_WRITE_EXCLUSIVE
  • RESERVATION_TYPE_EXCLUSIVE
  • RESERVATION_TYPE_WRITE_EXCLUSIVE_REGISTRANTS
  • RESERVATION_TYPE_EXCLUSIVE_REGISTRANTS

PR_OUT. ParameterList digunakan untuk menahan struktur PRO_PARAMETER_LIST . Struktur ini diperlukan dan harus bersebelahan dengan struktur PERSISTENT_RESERVE_COMMAND lainnya.

Panjang buffer input

Panjang struktur PERSISTENT_RESERVE_COMMAND .

Buffer output

Tidak ada.

Panjang buffer output

Tidak ada.

Blok status

Bidang Informasi diatur ke nol.

Bidang Status diatur ke salah satu nilai berikut.

Nilai Makna
STATUS_DEVICE_BUSY (ERROR_BUSY) Perintah gagal karena Konflik Reservasi (untuk informasi selengkapnya, lihat spesifikasi Perintah Utama SCSI - 2 (SPC-2).
STATUS_INFO_LENGTH_MISMATCH Panjang buffer input untuk IOCTL kurang dari sizeof(PERSISTENT_RESERVE_COMMAND) atau ukuran yang ditentukan dalam struktur data PERSISTENT_RESERVE_COMMAND kurang dari sizeof(PERSISTENT_RESERVE_COMMAND).
STATUS_INVALID_DEVICE_REQUEST (ERROR_INVALID_FUNCTION) Kode kontrol I/O (IOCTL_STORAGE_PERSISTENT_RESERVE_OUT) tidak didukung oleh driver penyimpanan.
STATUS_INVALID_PARAMETER (ERROR_INVALID_PARAMETER) Struktur buffer input salah berukuran atau diisi.
STATUS_INVALID_USER_BUFFER (ERROR_INVALID_USER_BUFFER) Buffer input tidak diratakan dengan benar untuk perangkat atau adaptor. Status ini hanya dapat dikembalikan ketika driver mengirim IOCTL ke tumpukan penyimpanan. Status ini tidak dikembalikan ketika aplikasi mode pengguna mengirim IOCTL melalui DEVICEIoControl API karena Manajer I/O secara otomatis menyelaraskan buffer.
STATUS_IO_DEVICE_ERROR (ERROR_IO_DEVICE) Perangkat tidak mendukung perintah Cadangan Persisten Keluar.
STATUS_SUCCESS Operasi berhasil.

Persyaratan

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