Makro IoAcquireRemoveLock (wdm.h)
Rutinitas IoAcquireRemoveLock menaikkan jumlah untuk kunci hapus, menunjukkan bahwa objek perangkat terkait tidak boleh dilepas dari tumpukan perangkat atau dihapus.
Sintaks
NTSTATUS
IoAcquireRemoveLock (
_Inout_ PIO_REMOVE_LOCK RemoveLock,
_In_opt_ PVOID Tag
);
Parameter
[in] RemoveLock
Penunjuk ke struktur IO_REMOVE_LOCK yang diinisialisasi pemanggil dengan panggilan sebelumnya ke IoInitializeRemoveLock.
[in, optional] Tag
Secara opsional menunjuk ke tag yang disediakan penelepon yang mengidentifikasi instans ini untuk memperoleh kunci hapus. Misalnya, rutinitas Pengiriman driver biasanya mengatur parameter ini ke pointer ke IRP yang diproses oleh rutinitas.
Jika driver menentukan Tag pada panggilan ke IoAcquireRemoveLock, driver harus menyediakan Tag yang sama dalam panggilan yang sesuai ke IoReleaseRemoveLock.
Tag tidak harus unik, tetapi harus menjadi sesuatu yang bermakna selama debugging.
Nilai kembali
Tidak ada
Keterangan
Makro IoAcquireRemoveLock membungkus dan mengasumsikan nilai pengembalian IoAcquireRemoveLockEx, yang mengembalikan NTSTATUS:
Mengembalikan nilai | Deskripsi |
---|---|
STATUS_SUCCESS | Menunjukkan bahwa panggilan berhasil. |
STATUS_DELETE_PENDING | Nilai kesalahan yang menunjukkan driver telah menerima IRP_MN_REMOVE_DEVICE untuk perangkat dan telah memanggil IoReleaseRemoveLockandWait. Rutinitas itu menunggu semua kunci hapus untuk dihapus sebelum mengembalikan kontrol ke driver. |
Jika rutin mengembalikan nilai apa pun selain STATUS_SUCCESS, jangan memulai operasi baru apa pun di perangkat.
Driver harus menginisialisasi hapus kunci dengan panggilan ke IoInitializeRemoveLock sebelum menggunakan kunci.
Driver harus memanggil IoReleaseRemoveLock untuk melepaskan kunci saat tidak lagi diperlukan.
Untuk informasi selengkapnya, lihat Menggunakan Hapus Kunci.