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.
Os drivers de nível superior que monitorizam numa base específica de IRP como os drivers de nível inferior realizaram pedidos específicos podem ter uma ou mais rotinas de IoCompletion. Os drivers de nível elevado que alocam IRPs para enviar solicitações a drivers inferiores devem ter uma rotina IoCompletion.
Uma rotina dede DispatchRead ouDispatchWrite de nível mais alto ou intermediário tem maior probabilidade de definir uma rotina de IoCompletion para um IRP, porque os drivers de nível inferior devem lidar com solicitações de transferência de forma assíncrona.
O driver de nível mais baixo numa pilha de drivers não pode registar rotinas IoCompletion.
Os drivers geralmente não registram rotinas de IoCompletion para IRPs associados a operações de E/S síncronas. Por exemplo, um driver de nível superior rotina de DispatchDeviceControl pode alocar um IRP usando IoBuildDeviceIoControlRequest. Nesse caso, a rotina de despacho normalmente não registra uma rotina de IoCompletion, porque as solicitações de controle de dispositivo geralmente são tratadas de forma síncrona. Em vez disso, o driver pode alocar e inicializar um objeto de evento, e a sua rotina de DispatchDeviceControl pode aguardar que um evento seja inicializado ao enviar IRPs alocados pelo driver. Normalmente, um driver de nível superior não registra uma rotina de IoCompletion para um IRP alocado com IoBuildSynchronousFsdRequest , pelo mesmo motivo.
Esta seção contém os seguintes tópicos: