Função NdisMRegisterMiniportDriver (ndis.h)
Um driver de miniporto chama a função NdisMRegisterMiniportDriver para registrar miniportXxx pontos de entrada 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 de driver opaco que o driver de miniporto recebeu em sua rotina de DriverEntry no parâmetro Argument1 (consulte DriverEntry of NDIS Miniport Drivers).
[in] RegistryPath
Um ponteiro para um caminho opaco do Registro 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 nas chamadas de função Ndis Xxx subsequentes.
Valor de retorno
NdisMRegisterMiniportDriver retorna um dos seguintes valores de status:
Código de retorno | Descrição |
---|---|
|
NdisMRegisterMiniportDriver registrou o driver de miniporto 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 status de erro padrão, retornado quando nenhum dos erros anteriores causou falha no registro. |
Observações
Um driver NDIS chama NdisMRegisterMiniportDriver de sua rotina de DriverEntry. Para obter mais informações, consulte DriverEntry of NDIS Miniport Drivers.
Cada driver de miniporto exporta um conjunto de funções MiniportXxx padrão 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 exatamente como para qualquer driver de miniporto. 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 os drivers de miniporto registrem serviços opcionais, o NDIS chama a função MiniportSetOptions no contexto de NdisMRegisterMiniportDriver.
Depois que um driver chama NdisMRegisterMiniportDriver, o driver deve estar preparado para ser chamado novamente na função MiniportInitializeEx especificada no parâmetro MiniportDriverCharacteristics a qualquer momento após o retorno do DriverEntry.
Se ocorrer um erro no 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
Consulte também
inicializando um de driver de miniporto
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver