Compartilhar via


Função NdisMRegisterInterruptEx (ndis.h)

Os drivers de miniporto NDIS chamam a função NdisMRegisterInterruptEx para registrar uma interrupção.

Sintaxe

NDIS_STATUS NdisMRegisterInterruptEx(
  [in]  NDIS_HANDLE                              MiniportAdapterHandle,
  [in]  NDIS_HANDLE                              MiniportInterruptContext,
  [in]  PNDIS_MINIPORT_INTERRUPT_CHARACTERISTICS MiniportInterruptCharacteristics,
  [out] PNDIS_HANDLE                             NdisInterruptHandle
);

Parâmetros

[in] MiniportAdapterHandle

O identificador do adaptador de miniporto que o NDIS passou para o Função MiniportInitializeEx .

[in] MiniportInterruptContext

Um ponteiro para um bloco de informações de contexto. O driver de miniporto aloca essa memória para armazenar informações sobre a interrupção. O NDIS passa o bloco de informações de contexto em chamadas subsequentes para outras funções associadas à interrupção.

[in] MiniportInterruptCharacteristics

Um ponteiro para um NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS estrutura que o driver de miniporte criou. O driver inicializa essa estrutura com pontos de entrada do manipulador e parâmetros de configuração que definem as características de interrupção.

[out] NdisInterruptHandle

Um ponteiro para um identificador NDIS. O NDIS grava o identificador do objeto de interrupção recém-criado no endereço especificado pelo ponteiro NdisInterruptHandle .

Retornar valor

NdisMRegisterInterruptEx pode retornar um dos seguintes valores:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
O NDIS inicializou o objeto de interrupção e forneceu um identificador de interrupção válido em NdisInterruptHandle . O NDIS reivindicou recursos de hardware e configurou as funções que ele chama quando ocorre uma interrupção.
NDIS_STATUS_RESOURCES
Falha no NdisMRegisterInterruptEx devido a recursos insuficientes.
NDIS_STATUS_XXX ou NT_STATUS_XXX
A tentativa de inicializar o objeto de interrupção falhou por motivos diferentes daqueles da lista anterior.

Comentários

Um driver de miniporto deve chamar NdisMRegisterInterruptEx de sua função MiniportInitializeEx se ele gerenciar uma NIC que gera interrupções.

MiniportInitializeEx deve chamar o Função NdisMSetMiniportAttributes antes de chamar NdisMRegisterInterruptEx.

O driver de miniporto deve especificar pontos de entrada para as seguintes funções de serviço de interrupção:

MiniportInterrupt

MiniportInterruptDPC

MiniportDisableInterruptEx

MiniportEnableInterruptEx

Se a NIC der suporte a MSI (interrupções sinalizadas por mensagem), o driver de miniporto deverá especificar pontos de entrada para as seguintes funções de serviço MSI:

MiniportMessageInterrupt

MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterrupt

Se um driver especificar pontos de entrada para MSI, ele também deverá especificar pontos de entrada para as funções de serviço de interrupção não MSI. Além disso, se NdisMRegisterInterruptEx retornar NDIS_STATUS_SUCCESS, o driver deverá examinar o valor do membro InterruptType do NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS estrutura para determinar o tipo de interrupções concedidas pelo NDIS. Se o NDIS não puder conceder suporte à MSI, ele concederá suporte para interrupções baseadas em linha.

Quando as interrupções são habilitadas na NIC, a função MiniportInterrupt(ou MiniportMessageInterrupt) de um driver pode ser chamada a qualquer momento após o driver chamar NdisMRegisterInterruptEx, mesmo antes de NdisMRegisterInterruptEx retornar. Portanto, um driver não deve chamar NdisMRegisterInterruptEx até que esteja pronto para lidar com uma interrupção.

Os drivers chamam o Função NdisMDeregisterInterruptEx para liberar recursos que foram alocados anteriormente com NdisMRegisterInterruptEx.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte no NDIS 6.0 e posterior.
Plataforma de Destino Universal
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI Init_DeRegisterInterrupt(ndis), Init_RegisterInterrupt(ndis), Irql_Interrupt_Function(ndis), NdisMDeregisterInterruptEx(ndis)

Confira também

MiniportDisableInterruptEx

MiniportDisableMessageInterrupt

MiniportEnableInterruptEx

MiniportEnableMessageInterrupt

MiniportInitializeEx

MiniportInterrupt

MiniportInterruptDPC

MiniportMessageInterrupt

MiniportMessageInterruptDPC

NDIS_MINIPORT_INTERRUPT_CHARACTERISTICS

NdisMDeregisterInterruptEx

NdisMSetMiniportAttributes