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.
Para melhorar o desempenho do sistema, algumas funções NDIS (por exemplo, a função MiniportSendNetBufferLists) incluem um sinalizador de nível de despacho que indica o IRQL atual. O uso adequado do sinalizador de nível de despacho pode ajudar a evitar tentativas desnecessárias de definir o IRQL.
Existem outras sinalizações que controlam diferentes atributos, mas os nomes para as sinalizações de nível de despacho são:
NDIS_SEND_FLAGS_DISPATCH_LEVEL
NDIS_SEND_COMPLETE_FLAGS_DISPATCH_LEVEL
NDIS_RECEIVE_FLAGS_DISPATCH_LEVEL
NDIS_RETURN_FLAGS_DISPATCH_LEVEL
NDIS_RWL_AT_DISPATCH_LEVEL
O chamador deve determinar a configuração do sinalizador de nível de despacho com base no IRQL atual conhecido, em vez de testar o IRQL. Por exemplo, você conhece o IRQL porque é uma característica fixa do design do driver ou o driver salvou o IRQL atual.
Se o IRQL atual conhecido estiver em DISPATCH_LEVEL, o chamador deve definir o sinalizador. Se o IRQL atual for desconhecido ou se o chamador não estiver em execução no DISPATCH_LEVEL, o chamador deverá limpar esse sinalizador. Se o chamador for NDIS, a função chamada deve testar esse sinalizador para evitar alterar o IRQL.
Os drivers não devem testar o IRQL para determinar o valor para o indicador de nível de despacho. Testar derrotaria o propósito da bandeira. Se necessário, a função chamada pode simplesmente fazer o teste em si. A forma como um condutor determina que deve ou não definir a bandeira é deixada ao critério do condutor em particular.