Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se um driver de dispositivo tiver uma rotina StartIo, as suas rotinas de despacho podem registrar uma rotina Cancel fornecendo o seu endereço como entrada para IoStartPacket.
Se um driver não tiver uma rotina StartIo, as suas rotinas de despacho devem fazer o seguinte antes de enfileirar um IRP para processamento adicional por outras rotinas do driver:
Ligue IoAcquireCancelSpinLock.
Ligue IoSetCancelRoutine com o IRP de entrada e o ponto de entrada para uma rotina Cancel fornecida pelo driver.
Ligue IoReleaseCancelSpinLock.
Para obter informações sobre o bloqueio de espera de cancelamento, consulte Usando o bloqueio de espera de cancelamento do sistema.
Os drivers que gerem as suas próprias filas de IRPs, em vez de usar a fila de dispositivos fornecida pelo gestor de E/S, não precisam adquirir o spin lock de cancelamento ao chamar IoSetCancelRoutine. No entanto, esses drivers devem verificar o ponteiro da rotina Cancel que IoSetCancelRoutine retorna para determinar se a rotina Cancel já foi iniciada.