Quando Completare un'IRP

Un driver deve avviare il completamento di IRP quando viene soddisfatta una delle condizioni seguenti:

  • Il driver determina che l'elaborazione IRP non può essere in corso a causa di parametri non validi o altre condizioni.

  • Il driver è in grado di gestire l'operazione di I/O richiesta senza passare l'IRP verso il basso dello stack di driver e l'operazione è stata completata.

  • L'IRP viene annullato. Vedere Annullamento degli indirizzi IP.

Se queste condizioni non vengono soddisfatte, la routine di invio di un driver deve passare l'IRP fino al driver inferiore successivo oppure deve gestire l'elaborazione della richiesta di I/O. Se viene soddisfatta una delle condizioni, il driver deve chiamare IoCompleteRequest.

Se un driver completa una richiesta perché l'elaborazione non è in grado di procedere o se completa una richiesta gestendo l'operazione richiesta senza effettivamente accedere al dispositivo, in genere chiama IoCompleteRequest da una delle relative routine di invio. Per altre informazioni, vedere Completamento di IRP in Routine di invio.

Se un driver deve accedere a un dispositivo per soddisfare la richiesta, in genere chiama IoCompleteRequest da una routine DpcForIsr . Queste routine sono descritte ampiamente in Interruzioni di manutenzione.