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
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) |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk