MINIPORT_ENABLE_MESSAGE_INTERRUPT função de retorno de chamada (ndis.h)
O NDIS pode chamar a função MiniportEnableMessageInterrupt de um driver de miniport para habilitar uma interrupção de mensagem para fins de diagnóstico e solução de problemas.
Sintaxe
MINIPORT_ENABLE_MESSAGE_INTERRUPT MiniportEnableMessageInterrupt;
void MiniportEnableMessageInterrupt(
[in] NDIS_HANDLE MiniportInterruptContext,
[in] ULONG MessageId
)
{...}
Parâmetros
[in] MiniportInterruptContext
Um identificador para um bloco de informações de contexto. O driver de miniporto forneceu esse identificador no parâmetro MiniportInterruptContext que o driver de miniporto passou para o Função NdisMRegisterInterruptEx .
[in] MessageId
Uma interrupção sinalizada por mensagem. MessageId é um índice para o IO_INTERRUPT_MESSAGE_INFO_ENTRY estruturas dentro de um IO_INTERRUPT_MESSAGE_INFO estrutura. O NDIS passa um ponteiro para a estrutura IO_INTERRUPT_MESSAGE_INFO associada no membro MessageInfoTable quando o driver se registra com êxito para MSI com a função NdisMRegisterInterruptEx .
Retornar valor
Nenhum
Comentários
Um driver de miniporte deverá fornecer uma função MiniportEnableMessageInterrupt se o driver chamar a função NdisMRegisterInterruptEx para registrar uma interrupção.
Os drivers de miniporte devem desabilitar e habilitar uma interrupção de mensagem, conforme explicado no MiniportMessageInterrupt e Páginas de referência MiniportMessageInterruptDpc .
O NDIS chama o MiniportEnableMessageInterrupt eFunções MiniportDisableMessageInterrupt para habilitar e desabilitar uma interrupção de mensagem para fins de diagnóstico e solução de problemas. Normalmente, MiniportEnableMessageInterrupt e MiniportDisableMessageInterrupt acessam recursos do miniportor compartilhados pelo Função MiniportMessageInterrupt . Portanto, o NDIS chama esses manipuladores no DIRQL.
Exemplos
Para definir uma função MiniportEnableMessageInterrupt , 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 MiniportEnableMessageInterrupt chamada "MyEnableMessageInterrupt", use o tipo MINIPORT_ENABLE_MESSAGE_INTERRUPT conforme mostrado neste exemplo de código:
MINIPORT_ENABLE_MESSAGE_INTERRUPT MyEnableMessageInterrupt;
Em seguida, implemente sua função da seguinte maneira:
_Use_decl_annotations_
VOID
MyEnableMessageInterrupt(
__in NDIS_HANDLE MiniportInterruptContext,
__in ULONG MessageId
)
{...}
O tipo de função MINIPORT_ENABLE_MESSAGE_INTERRUPT é 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_ENABLE_MESSAGE_INTERRUPT 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 | DIRQL (consulte a seção Comentários) |