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 |
---|---|
|
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. |
|
Falha no NdisMRegisterInterruptEx devido a recursos insuficientes. |
|
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:
MiniportDisableInterruptExSe 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:
MiniportMessageInterruptDPC MiniportDisableMessageInterrupt MiniportEnableMessageInterruptSe 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) |