Udostępnij przez


Rejestrowanie procedury anulowania

Jeśli sterownik urządzenia ma procedurę StartIo , procedury wysyłania mogą zarejestrować procedurę anulowania , podając swój adres jako dane wejściowe do IoStartPacket.

Jeśli sterownik nie ma procedury StartIo, jego procedury dyspozycji muszą wykonać następujące czynności przed dodaniem IRP do kolejki w celu dalszego przetwarzania przez inne procedury sterownika.

  1. Wywołaj metodę IoAcquireCancelSpinLock.

  2. Wywołaj metodę IoSetCancelRoutine za pomocą wejściowego protokołu IRP i punktu wejścia dla procedury Anulowania dostarczonej przez sterownik.

  3. Wywołaj metodę IoReleaseCancelSpinLock.

Aby uzyskać informacje o anulowaniu blokady spin, zobacz Using the System's Cancel Spin Lock (Używanie blokady anulowania spinu systemu).

Sterowniki, które zarządzają własnymi kolejkami środowisk IRP, a nie przy użyciu kolejki urządzeń dostarczonych przez menedżera we/wy, nie muszą uzyskiwać blokady anulowania spin podczas wywoływania IoSetCancelRoutine. Jednak te sterowniki powinny sprawdzić wskaźnik procedury Anuluj, który zwraca IoSetCancelRoutine, aby ustalić, czy procedura Anuluj została już uruchomiona.