MINIPORT_CHECK_FOR_HANG função de retorno de chamada (ndis.h)
Aviso
As funções de retorno de chamada MiniportCheckForHangEx e MiniportResetEx são desencorajadas para todos os drivers NDIS 6.83 e posteriores. Para obter mais informações, consulte operações Check-for-Hang e Reset no NDIS 6.83 e posteriores.
O NDIS chama a função MiniportCheckForHangEx de um driver de miniporto para verificar o estado operacional do adaptador de miniporto que representa uma NIC (placa de interface de rede).
Sintaxe
MINIPORT_CHECK_FOR_HANG MiniportCheckForHang;
BOOLEAN MiniportCheckForHang(
[in] NDIS_HANDLE MiniportAdapterContext
)
{...}
Parâmetros
[in] MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx. O driver de miniporto usa essa área de contexto para manter informações de estado para um adaptador de miniporto.
Valor de retorno
MiniportCheckForHangEx retornará verdadeiro se o driver determinar que uma NIC não está operando e o NDIS deverá chamar a função de MiniportResetEx do do driver. Para obter mais informações, consulte a seção Comentários.
Observações
Um driver de miniporto especifica o ponto de entrada MiniportCheckForHangEx quando ele chama o função NdisMRegisterMiniportDriver.
miniportCheckForHangEx não é necessário para drivers intermediários.
MiniportCheckForHangEx não faz nada além de verificar o estado interno da NIC e retornar VERDADEIRO se detectar que a NIC não está operando corretamente.
Por padrão, as chamadas NDIS MiniportCheckForHangEx aproximadamente a cada dois segundos. Por esse motivo, a função MiniportCheckForHangEx do driver de miniport deve retornar o mais rápido possível.
Se um driver de miniporto não concluir uma solicitação OID em duas chamadas sucessivas para miniportCheckForHangEx, o NDIS poderá chamar a função de MiniportResetEx do driver. No entanto, para evitar redefinições desnecessárias, a função MiniportInitializeEx do driver pode estender o intervalo de tempo limite de check-for-hang definindo um valor de check-for-hang apropriado CheckForHangTimeInSeconds função NdisMSetMiniportAttributes.
Para obter mais informações sobre como definir o CheckForHangTimeInSeconds valor de tempo limite, consulte Miniport Adapter Check-for-Hang and Reset Operations.
Chamadas NDIS miniportCheckForHangEx em IRQL = PASSIVE_LEVEL.
exemplos de
Para definir uma função MiniportCheckForHangEx, primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda Análise de Código para Drivers, SDV (Verificador de Driver Estático) e outras ferramentas de verificação a encontrar erros e é um requisito para gravar drivers para o sistema operacional Windows.Por exemplo, para definir uma função MiniportCheckForHangEx chamada "MyCheckForHangEx", use o tipo MINIPORT_CHECK_FOR_HANG conforme mostrado neste exemplo de código:
MINIPORT_CHECK_FOR_HANG MyCheckForHangEx;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
BOOLEAN
MyCheckForHangEx(
NDIS_HANDLE MiniportAdapterContext
)
{...}
O tipo de função MINIPORT_CHECK_FOR_HANG é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função MINIPORT_CHECK_FOR_HANG no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.
Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
da Plataforma de Destino | Windows |
cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | PASSIVE_LEVEL |
Consulte também
operações de verificação e redefinição do adaptador de miniporto