Partilhar via


Escrevendo 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

Acesso a informações de estado compartilhadas

Como um ISR, uma rotina SynchCritSection deve ser executada o mais rápido possível, fazendo apenas o 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 despacho (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.