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 |
---|---|
|
NdisMRegisterMiniportDriver registrou o driver de miniporte com êxito. |
|
O parâmetro CharacteristicsLength está incorreto para a versão do NDIS especificada no membro MajorNdisVersion na estrutura em MiniportDriverCharacteristics . |
|
O MajorNdisVersion ou MinorNdisVersion especificado na estrutura de características é inválido. |
|
Uma escassez de recursos, possivelmente memória, impediu que o NDIS registrasse o chamador. |
|
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
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver