Função NdisMRegisterMiniportDriver (ndis.h)

Um driver de miniporto chama a função NdisMRegisterMiniportDriver para registrar pontos de entrada miniportXxx com NDIS como a primeira etapa na inicialização.

Sintaxe

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

Parâmetros

[in] DriverObject

Um ponteiro para um objeto driver opaco que o driver de miniporto recebeu em sua rotina DriverEntry no parâmetro Argument1 (consulte DriverEntry of NDIS Miniport Drivers).

[in] RegistryPath

Um ponteiro para um caminho de registro opaco que o driver de miniporto recebeu em sua rotina DriverEntry no parâmetro Argument2 .

[in, optional] MiniportDriverContext

Um identificador para uma área de contexto alocada pelo driver em que o driver mantém informações de estado e configuração.

[in] MiniportDriverCharacteristics

Um ponteiro para um NDIS_MINIPORT_DRIVER_CHARACTERISTICS estrutura inicializada pelo chamador.

[out] NdisMiniportDriverHandle

Um ponteiro para uma variável de identificador fornecida pelo chamador. O NDIS grava um identificador nessa variável que identifica exclusivamente esse driver. O driver deve salvar esse identificador para uso em chamadas de função NdisXxx subsequentes.

Retornar valor

NdisMRegisterMiniportDriver retorna um dos seguintes valores de status:

Código de retorno Descrição
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver registrou o driver de miniporte com êxito.

NDIS_STATUS_BAD_CHARACTERISTICS
O parâmetro CharacteristicsLength está incorreto para a versão do NDIS especificada no membro MajorNdisVersion na estrutura em MiniportDriverCharacteristics .
NDIS_STATUS_BAD_VERSION
O MajorNdisVersion ou MinorNdisVersion especificado na estrutura de características é inválido.
NDIS_STATUS_RESOURCES
Uma escassez de recursos, possivelmente memória, impediu que o NDIS registrasse o chamador.
NDIS_STATUS_FAILURE
Esse é um erro padrão status, retornado quando nenhum dos erros anteriores causou falha no registro.

Comentários

Um driver NDIS chama NdisMRegisterMiniportDriver de sua rotina driverEntry . Para obter mais informações, consulte DriverEntry of NDIS Miniport Drivers.

Cada driver de miniporte exporta um conjunto de funções padrão do MiniportXxx configurando a estrutura de características e chamando NdisMRegisterMiniportDriver. O NDIS copia a estrutura de características para o armazenamento interno do NDIS. Portanto, depois de registrado, um driver não pode alterar seus pontos de entrada MiniportXxx .

Para registrar sua interface de miniporto virtual, um drivers intermediários do NDIS deve chamar NdisMRegisterMiniportDriver com o sinalizador NDIS_INTERMEDIATE_DRIVER definido na estrutura em MiniportDriverCharacteristics . Os drivers NDIS que têm uma borda inferior do WDM devem chamar NdisMRegisterMiniportDriver com o sinalizador NDIS_WDM_DRIVER definido na estrutura em MiniportDriverCharacteristics .

Os drivers podem se registrar como um driver de miniporto combinado e um driver intermediário. Para registrar seu driver de miniporto físico, um driver intermediário de miniporto chama NdisMRegisterMiniportDriver com parâmetros apropriados, assim como para qualquer driver de miniport. Para registrar sua interface de miniporto virtual, o driver chama NdisMRegisterMiniportDriver novamente, mas com o sinalizador NDIS_INTERMEDIATE_DRIVER definido no parâmetro MiniportDriverCharacteristics .

Para permitir que drivers de miniporte registrem serviços opcionais, o NDIS chama a função MiniportSetOptions dentro do contexto de NdisMRegisterMiniportDriver.

Depois que um driver chamar NdisMRegisterMiniportDriver, o driver deverá estar preparado para ser chamado novamente na função MiniportInitializeEx especificada no parâmetro MiniportDriverCharacteristics a qualquer momento após o retorno de DriverEntry.

Se ocorrer um erro em DriverEntry após NdisMRegisterMiniportDriver retornar com êxito, o driver deverá chamar o Função NdisMDeregisterMiniportDriver antes de DriverEntry retornar. Se DriverEntry for bem-sucedido, o driver deverá chamar NdisMDeregisterMiniportDriver de sua função MiniportDriverUnload .

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 Irql_Miniport_Driver_Function(ndis)

Confira também

Inicializando um driver de miniporte

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver