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 posterior.
O NDIS chama a função MiniportCheckForHangEx de um driver de miniport para marcar o estado operacional do adaptador de miniporte que representa uma NIC (cartão 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 miniporte.
Retornar valor
MiniportCheckForHangEx retornará TRUE se o driver determinar que uma NIC não está operando e o NDIS deverá chamar a função MiniportResetEx do driver. Para obter mais informações, consulte a seção Comentários.
Comentários
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 mais do que marcar o estado interno da NIC e retorna TRUE se detectar que a NIC não está operando corretamente.
Por padrão, o NDIS chama 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 MiniportResetEx do driver. No entanto, para evitar redefinições desnecessárias, a função MiniportInitializeEx do driver pode estender o intervalo de tempo limite marcar-for-hang definindo um valor de CheckForHangTimeInSeconds apropriado ao chamar o Função NdisMSetMiniportAttributes .
Para obter mais informações sobre como definir o valor de tempo limite CheckForHangTimeInSeconds , consulte Miniport Adapter Check-for-Hang and Reset Operations.
O NDIS chama MiniportCheckForHangEx em IRQL = PASSIVE_LEVEL.
Exemplos
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 a 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 |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Plataforma de Destino | Windows |
Cabeçalho | ndis.h (inclua Ndis.h) |
IRQL | PASSIVE_LEVEL |
Confira também
Operações de verificação e redefinição do adaptador de miniport