Compartilhar via


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

Use as seguintes diretrizes gerais para projetar, gravar e chamar rotinas SynchCritSection que programam um dispositivo para operações de E/S:

  • Uma rotina SynchCritSection que programa o dispositivo para operações de E/S deve retornar o controle o mais rápido possível.

    Por esse motivo, a rotina SynchCritSection deve fazer apenas o que é necessário para configurar o dispositivo para E/S. Portanto, o driver deve executar todo o pré-processamento do IRP, inicializando informações de estado para outras rotinas de driver e adquirindo recursos de hardware antes de chamar a rotina SynchCritSection .

  • Um driver de dispositivo pode ter várias rotinas synchCritSection para programar o dispositivo.

    Por exemplo, o driver de um dispositivo para o qual a configuração de uma solicitação de leitura difere significativamente da configuração de determinadas solicitações de controle de dispositivo pode ter rotinas de SynchCritSection separadas para programar seu dispositivo para cada tipo de solicitação.

  • Cada rotina SynchCritSection deve retornar o controle o mais rápido possível, pois a execução de qualquer rotina SynchCritSection impede a execução do ISR do driver.

    Você não deve escrever uma rotina SynchCritSection única, grande e de uso geral com uma instrução switch ou muitos se aninhados . Então.. instruções else para determinar quais operações ele realizará ou quais informações de estado atualizar. Por outro lado, você deve evitar escrever várias rotinas SynchCritSection que programam apenas um único registro de dispositivo.