Condividi tramite


Registrazione di una routine annulla

Se un driver di dispositivo ha una routine StartIo , le routine di invio possono registrare una routine Cancel fornendo il relativo indirizzo come input a IoStartPacket.

Se un driver non dispone di una routine StartIo , le routine di invio devono eseguire le operazioni seguenti prima di accodare un'IRP per un'ulteriore elaborazione da parte di altre routine di driver:

  1. Chiamare IoAcquireCancelSpinLock.

  2. Chiamare IoSetCancelRoutine con l'IRP di input e il punto di ingresso per una routine Cancel fornita dal driver.

  3. Chiamare IoReleaseCancelSpinLock.

Per informazioni sul blocco di rotazione annulla, vedere Uso del blocco di spin spin di sistema.

I driver che gestiscono le proprie code di IRP, anziché usare la coda dei dispositivi fornita da gestione I/O, non devono acquisire il blocco di spin annullamento quando si chiama IoSetCancelRoutine. Tuttavia, questi driver devono controllare il puntatore di routine Annulla restituito da IoSetCancelRoutine per determinare se la routine Cancel è già stata avviata.