Bagikan melalui


Mendaftarkan Rutin Pembatalan

Jika driver perangkat memiliki rutinitas StartIo, rutinitas pengdispatchannya dapat mendaftarkan rutinitas Batal dengan menyediakan alamatnya sebagai input ke IoStartPacket.

Jika driver tidak memiliki rutinitas StartIo , rutinitas pengirimannya harus melakukan hal berikut sebelum mengantre IRP untuk pemrosesan lebih lanjut oleh rutinitas driver lainnya:

  1. Panggil IoAcquireCancelSpinLock.

  2. Panggil IoSetCancelRoutine dengan masukan IRP dan titik masuk untuk rutinitas Cancel yang disediakan oleh driver.

  3. Panggil IoReleaseCancelSpinLock.

Untuk informasi tentang kunci putar pembatalan, lihat Menggunakan Kunci Putar Pembatalan Sistem.

Driver yang mengelola antrean IRP mereka sendiri, daripada menggunakan antrean perangkat yang disediakan oleh manajer I/O, tidak perlu memperoleh kunci spin pembatalan saat memanggil IoSetCancelRoutine. Namun, para pengemudi ini harus memeriksa penunjuk rutin Cancel yang dikembalikan IoSetCancelRoutine untuk menentukan apakah rutinitas Cancel telah dimulai.