estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES (ndis.h)
Um driver de miniporto NDIS configura uma estrutura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES para definir atributos de registro associados a um adaptador de miniporte.
Sintaxe
typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
NDIS_OBJECT_HEADER Header;
NDIS_HANDLE MiniportAdapterContext;
ULONG AttributeFlags;
UINT CheckForHangTimeInSeconds;
NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;
Membros
Header
O tipo, a revisão e o tamanho da estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Esse membro é formatado como uma estrutura NDIS_OBJECT_HEADER .
O driver de miniporte deve definir o membro Tipo de Cabeçalho como NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Para especificar a versão da estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES , o driver deve definir o membro Revision de Header como um dos seguintes valores:
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2
Adicionados sinalizadores AttributeFlags para NDIS 6.30.
Defina o membro Size como NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2.
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1
Versão original do NDIS 6.0.
Defina o membro Size como NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1.
MiniportAdapterContext
Um identificador para uma área de contexto que o driver de miniporto alocou em sua função MiniportInitializeEx . O driver de miniporto usa essa área de contexto para manter informações de estado para um adaptador de miniporte.
AttributeFlags
Uma máscara de bits de sinalizadores que são combinadas com um OR bit a bit. Os drivers de miniporto NDIS devem definir um ou mais dos seguintes sinalizadores:
NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE
Defina se o driver de miniporte controla diretamente um dispositivo físico. O dispositivo físico recebe recursos de hardware, como interrupções, portas de E/S, E/S mapeadas pela memória ou canais de DMA que o driver de miniporte deve reivindicar do Função MiniportInitializeEx .
NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM
Defina se a interface de nível inferior do adaptador de miniporto for um driver de barramento WDM, como USB ou IEEE 1394. Nesse caso, o driver de miniporto não aloca recursos de hardware, como portas de E/S, interrupções, E/S mapeadas pela memória ou canais de DMA. Em vez disso, o driver se comunica com o dispositivo por meio da interface WDM do motorista de barramento subjacente.
NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER
Defina se a NIC do chamador for um dispositivo DMA master barramento.
NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND
Defina se o NDIS não deve chamar a função MiniportHaltEx de um driver de miniport antes que o sistema faça a transição para um estado de baixa potência (em suspensão). Os drivers que dependem do estado mantido por hardware não devem definir esse sinalizador.
NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK
Defina se o driver de miniporte pode lidar com a remoção de sua NIC sem notificação do usuário. Os drivers NDIS recebem notificações de remoção surpresa no Função MiniportDevicePnPEventNotify .
NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS
Definido por um driver de miniporte que pode dar suporte a dispositivos orientados à conexão e sem conexão para indicar que o dispositivo é um dispositivo sem conexão.
NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO
Definido por um driver de miniporto CoNDIS que não fornece serviços TAPI. Definir NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO impede que o NDIS vincule o driver de miniporto ao DRIVER proxy TAPI do NDIS (NDPROXY). Por padrão, o NDIS associa NDPROXY a todos os drivers de miniport do CoNDIS.
NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT
Definido por um driver de miniporto que chama a função NdisMNetPnPEvent para ativar sua porta padrão. Se NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT não estiver definido, a porta padrão estará ativa. O NDIS não associa drivers de protocolo nem anexa módulos de filtro a um adaptador de miniporte se sua porta padrão não estiver ativa.
NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND
A partir do NDIS 6.30, esse sinalizador será definido se o driver de miniporto puder fazer a transição para um estado de baixa potência sem pausar.
Para obter mais informações sobre esse sinalizador, consulte a seção Comentários.
NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK
A partir dos miniportos NDIS 6.30, o NDIS não invocará o manipulador MiniportShutdownEx do miniporte durante um BugCheck, a menos que esse sinalizador esteja definido. A maioria dos miniportos não deve definir esse sinalizador.
CheckForHangTimeInSeconds
O intervalo de tempo limite, em segundos, no qual o NDIS deve chamar o Função MiniportCheckForHangEx . Se um driver de miniporto não tiver respondido a uma solicitação OID ou uma solicitação de envio em duas chamadas sucessivas para MiniportCheckForHangEx, o NDIS poderá chamar a função MiniportResetEx do driver de miniport.
O intervalo que o NDIS usa ao chamar MiniportCheckForHangEx é sempre um múltiplo de 2 segundos. Por exemplo, se você especificar 5 segundos, o intervalo será de aproximadamente 4 segundos.
Se esse membro for 0, o intervalo de tempo limite padrão será de 2 segundos.
InterfaceType
O tipo de interface de barramento de E/S do adaptador de miniport. Geralmente, esse é o tipo de barramento de E/S no qual o adaptador de miniporto está conectado. Os seguintes valores têm suporte no NDIS 6.0:
NdisInterfaceInternal
Especifica uma interface interna específica do host.
NdisInterfaceIsa
Especifica a interface ISA.
NdisInterfaceEisa
Especifica a interface EISA (ISA estendida). Não há suporte para esse tipo de interface no NDIS 6.0 e versões posteriores.
NdisInterfaceMca
Refere-se ao barramento MCA, que não tem mais suporte. Não há suporte para esse tipo de interface no NDIS 6.0 e versões posteriores.
NdisInterfaceTurboChannel
Especifica a interface do Canal Turbo.
NdisInterfacePci
Especifica a interface PCI (interconexão de componente periférico).
NdisInterfacePcMcia
Especifica a interface da Associação Internacional do Cartão de Memória do Computador Pessoal (Pc Card).
NdisInterfaceCBus
Especifica o CBus.
NdisInterfaceMPIBus
Especifica o MPIBus.
NdisInterfaceMPSABus
Especifica o MPSABus.
NdisInterfaceProcessorInternal
Especifica o barramento interno do processador.
NdisInterfaceInternalPowerBus
Especifica o barramento de energia interno.
NdisInterfacePNPISABus
Especifica o PNPISABus.
NdisInterfacePNPBus
Especifica o PNPBus.
Esse parâmetro é irrelevante para drivers intermediários, que devem especificar 0 para esse membro.
Comentários
Um driver de miniporte passa um ponteiro para uma estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES no parâmetro MiniportAttributes do Função NdisMSetMiniportAttributes . Um driver de miniporto chama NdisMSetMiniportAttributes de sua função MiniportInitializeEx durante a inicialização.
Os drivers de miniport devem definir os atributos em NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES o mais rápido possível no MiniportInitializeEx. Definir esses atributos é obrigatório.
Sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND
O NDIS emite uma solicitação OID de OID_PNP_SET_POWER para o driver de miniporte antes que o adaptador de miniporto subjacente seja transferido para um estado de baixa potência de D1, D2 ou D3. Quando o driver lida com esse OID, ele deve preparar o adaptador de miniporto para a transição para o estado de energia inferior e não deve aguardar a conclusão das indicações pendentes de pacote de recebimento.Em alguns casos, antes que o NDIS emita a solicitação OID de OID_PNP_SET_POWER para o driver de miniporto, o NDIS chama a função MiniportPause do driver de miniporto , conforme descrito abaixo:
- Se o sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND não estiver definido, o NDIS chamará a função MiniportPause do driver de miniport antes que a solicitação OID de OID_PNP_SET_POWER seja emitida para o driver. No contexto da chamada MiniportPause , o driver deve aguardar a conclusão das indicações pendentes de pacote de recebimento.
-
Se o sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND estiver definido, o NDIS não chamará a função MiniportPause do driver de miniport antes que a solicitação OID de OID_PNP_SET_POWER seja emitida para o driver. Quando o driver de miniporto manipula a solicitação OID, ele não deve assumir que ele foi pausado anteriormente ao preparar o adaptador de miniporto para a transição para um estado de baixa potência.
Nota A exceção a isso ocorre quando um driver de protocolo ou filtro que dá suporte ao NDIS 6.20 ou versões anteriores do NDIS está associado ou anexado ao adaptador de miniporte. Nesse caso, o NDIS chama a função MiniportPause do driver de miniport, independentemente de o driver de miniporte definir o sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte no NDIS 6.0 e posterior. |
Cabeçalho | ndis.h (inclua Ndis.h) |
Confira também
Operações de verificação e redefinição do adaptador de miniport
MiniportDevicePnPEventNotify