Partilhar via


Gravando rotinas synchCritSection

Os drivers usam suas rotinas SynchCritSection para uma das duas finalidades básicas:

Programando um dispositivo para uma operação de E/S

Acessando informações de estado compartilhado

Como um ISR, uma rotina SynchCritSection deve ser executada o mais rápido possível, fazendo apenas o que é necessário para configurar registros de dispositivo ou atualizar dados de contexto, antes de retornar.

Como KeSynchronizeExecution mantém o bloqueio de rotação de interrupção de um driver de dispositivo enquanto sua rotina SynchCritSection é executada, o ISR do driver não pode ser executado até que a rotina SynchCritSection retorne o controle.

Para qualquer IRP recebido, um driver de dispositivo deve fazer o máximo de processamento de E/S possível no IRQL PASSIVE_LEVEL em suas rotinas de expedição (ou possivelmente threads dedicados ao dispositivo) ou no IRQL DISPATCH_LEVEL em sua rotina StartIo e rotinas DPC.

Para obter informações adicionais sobre como as seções críticas são sincronizadas, consulte Usando bloqueios de rotação: um exemplo.