MiniportISR
9/8/2008
Essa função é um exigido função SE adaptador rede do driver gera interrupções.
Syntax
VOID MiniportISR(
PBOOLEAN InterruptRecognized,
PBOOLEAN QueueMiniportHandleInterrupt,
NDIS_HANDLE MiniportAdapterContext
);
Parameters
InterruptRecognized
[out] Aponta para uma variável no qual MiniportISR Retorna se o adaptador de rede, na verdade, gerado a interrupção. MiniportISR Define esta como TRUE se ele detecta que a interrupção veio do adaptador de rede designada no MiniportAdapterContext.Se seu adaptador rede compartilha um IRQ com outros dispositivos no barramento mesmo, MiniportISR deve retornar FALSE o mais rápido possível sempre que ele determina que adaptador de rede não interrupção.
QueueMiniportHandleInterrupt
[out] Aponta para uma variável que MiniportISR Define como TRUE se o MiniportHandleInterrupt função deve ser chamado para operação E/S o Interrupt-driven completo.Se a variável no InterruptRecognized está definido para FALSE, o valor dessa variável é irrelevante porque MiniportHandleInterrupt Não será chamado.
- MiniportAdapterContext
[no] Especifica o identificador para uma área Miniport-allocated contexto no qual o driver mantém por-estado adaptador de rede, configurar por MiniportInitialize.
Return Value
Nenhum.
Remarks
Qualquer driver adaptador rede deve fazer tão pouco trabalho possível em seu MiniportISR função, deferring E/S operações para cada adaptador de rede gera a interrupção de MiniportHandleInterrupt função. ISR do driver adaptador uma rede não está re-entrant em Windows Embedded CE-com base em dispositivos, embora dois instanciações de um MiniportISR função pode executar simultaneamente em máquinas SMP, especialmente se a miniporta suporta full-duplex envia e recebe. Observe que SMP não com suporte para Windows Embedded CE.
MiniportISR é chamado sob a seguinte condições:
- Uma interrupção ocorre no adaptador de rede enquanto do o driver MiniportInitialize Ou MiniportHalt função é execução.
- Uma interrupção ocorre no barramento de E/S e adaptador de rede compartilha um IRQ com outros dispositivos nesse barramento.
- Se o adaptador rede compartilha um IRQ com outros dispositivos, ISR da miniporta que deve ser chamado em cada interrupção para determinar se seu adaptador rede gerado, na verdade, a interrupção. Se não for MiniportISR deve retornar FALSE imediatamente o driver do dispositivo que realmente gerou a interrupção é chamado rapidamente. Essa estratégia maximiza a taxa de transferência E/S para cada dispositivo no barramento a mesmo.
- Ocorre uma interrupção e driver adaptador de rede especificado que suas ISR deve ser chamado para identificador cada interrupção ao seu MiniportInitialize função chamado NdisMRegisterInterrupt.
- Miniports que não fornecem MiniportDisable/EnableInterrupt a funcionalidade deve ter suas ISRs chamado em cada interrupção.
MiniportISR deixe de usar a interrupção no adaptador de rede, salva qualquer estado ele deve sobre a interrupção e adia ao máximo o processamento E/S para cada interrupção possível para o MiniportHandleInterrupt função.
As informações restantes na página referência não aplicar a Windows Embedded CE porque a funcionalidade não é com suporte. No entanto, se portabilidade para Microsoft® Windows® 2000 é uma preocupação, a seguinte informações são fornecidas.
Após MiniportISR controle retorna com as variáveis no InterruptRecognized e QueueMiniportHandleInterrupt Definir como TRUE, o correspondente MiniportHandleInterrupt função é executada em uma prioridade inferior hardware da ISR. Como regra geral, MiniportHandleInterrupt Faça todos o trabalho para as operações E/S Interrupt-driven Except for para determinar se o adaptador de rede, na verdade, gerado a interrupção e, se necessário, preservando o tipo (Receber, enviar, redefinir) de interrupção.
No entanto, um gravador driver não deve confiar em uma correspondência entre a execução de um-para-um MiniportISR e MiniportHandleInterrupt. A MiniportHandleInterrupt função deve ser gravada em processamento identificador de E/S de more than uma interrupção adaptador de rede. Seu MiniportISR e MiniportHandleInterrupt funções podem executar simultaneamente em máquinas SMP. Além disso, tão logo MiniportISR Confirma uma interrupção adaptador de rede, adaptador de rede pode gerar outra interrupção, enquanto o MiniportHandleInterrupt DPC pode ser enfileirado para execução uma vez para tal uma seqüência de interrupções.
O MiniportHandleInterrupt função não é enfileirado se do o driver MiniportHalt Ou MiniportInitialize função no momento está sendo executado.
Requirements
Header | externs.h |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
MiniportHandleInterrupt
MiniportInitialize
MiniportHalt
NdisMRegisterInterrupt