Compartilhar via


DriverEntry

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

DriverEntry é um exigido função que o sistema chama primeiro em qualquer driver NDIS.

Syntax

NDIS_STATUS DriverEntry(
  PVOID Argument1,
  PVOID Argument2 
); 

Parameters

  • Argumento1
    [no] Aponta para um parâmetro System-supplied.
  • Argumento2 As
    [no] Aponta para um segundo parâmetro System-supplied.

Return Value

DriverEntry Retorna o valor retornado por NdisMRegisterMiniport Ou NdisIMRegisterLayeredMiniport.

Remarks

Drivers intermediário e miniportas NDIS realizar duas tarefas básicas no seu DriverEntry funções:

  1. Chamar NdisMInitializeWrapper Para notificar a biblioteca NDIS que o driver é sobre como registrar próprio como uma miniporta.
    NDIS configura o estado ele precisa para controlar o driver e retorna um NdisWrapperHandle, que o driver salva para chamadas subseqüentes para NDISXxx funções configuração e inicialização.
  2. Preencha uma NDISXX_MINIPORT_CHARCTERISTICS estrutura com o apropriado versão números e pontos de entrada para driver-fornecido MiniportaXxx funções e, depois, chamar NdisMRegisterMiniport Ou NdisIMRegisterLayeredMiniport.
    Geralmente, chamar drivers NIC NdisMRegisterMiniport, como intermediário drivers que exportar somente um conjunto de MiniportaXxx funções. Geralmente, intermediário NDIS chamar drivers NdisIMRegisterLayeredMiniport, que efetivamente adia a inicialização de tal um driver do NIC virtual até que as chamadas driver NdisIMInitializeDeviceInstance do seu ProtocolBindAdapter função.

DriverEntry pode alocar o NDISXX_MINIPORT_CHARACTERISTICS estrutura sobre a pilha desde que a biblioteca NDIS copia as informações relevantes para seu próprio armazenamento. DriverEntry Deve Clear a memória para essa estrutura com NdisZeroMemory Antes configuração quaisquer valores driver-fornecido em seus membros. O atual MajorNdisVersion é 0 x 05 e a atual MinorNdisVersion é 0 x 00. Em cada XxxHandler membro da estrutura de características, DriverEntry deve definir o nome de um driver-fornecido MiniportaXxx função, ou o membro deve ser NULL.

Chamando NdisMRegisterMiniport Faz com que função MiniportInitialize do driver para executar no contexto de NdisMRegisterMiniport. Chamando NdisIMRegisterLayeredMiniport adia a chamar para MiniportInitialize até que as chamadas driver NdisIMInitializeDeviceInstance.

Drivers que chamar NdisMRegisterMiniport deve ser preparado para uma chamar imediata para seus MiniportInitialize funções. Tal um driver deve ter informações suficientes instalação e configuração armazenadas na Registro ou disponível de chamadas para um NDISXxx barramento - tipo - função configuração específica configurar quaisquer recursos NIC-specific o driver será necessário realizar operações rede E/S.

Drivers que chamar NdisIMRegisterLayeredMiniport Adiar a chamar para seus MiniportInitialize funções para outra função driver-supplied que torna um chamar para NdisIMInitializeDeviceInstance. NDIS intermediário drivers normalmente registrar um ProtocolBindAdapter função e chamar NdisIMRegisterLayeredMiniport Para que irá NDIS chamar o ProtocolBindAdapter função após subjacente todos os drivers NIC tiverem inicializado. Essa estratégia fornece tal um intermediário NDIS driver, o que torna a chamar para NdisIMInitializeDeviceInstance a partir ProtocolBindAdapter, a vantagem de ter sua MiniportInitialize função configurar recursos driver-alocado para o intermediário é Virtual NIC aos recursos da subjacente driver NIC para que o intermediário tem já ligado próprio.

Se NdisMRegisterMiniport Ou NdisIMRegisterLayeredMiniport Não retornar NDIS_STATUS_SUCCESS, DriverEntry Deve versão quaisquer recursos ele alocados, such as memória para armazenar o NdisWrapperHandlee deve chamar NdisTerminateWrapper Antes de que retorna controle. O driver não será carregado se isso ocorrer.

Requirements

Header ndis.h
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

MiniportInitialize
NdisIMInitializeDeviceInstance
NdisIMRegisterLayeredMiniport
NdisMInitializeWrapper
NdisMRegisterMiniport
NdisTerminateWrapper
NdisZeroMemory
ProtocolBindAdapter