NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES estrutura (ndis.h)
Um driver de miniporto NDIS configura uma estrutura NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES para definir atributos de registro associados a um adaptador de miniporto.
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 miniporto deve definir o membro tipo do de cabeçalho para NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES. Para especificar a versão da estrutura de NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, o driver deve definir o membro de Revisão do de Cabeçalho para um dos seguintes valores:
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2
Adicionados sinalizadores AttributeFlags para NDIS 6.30.
Defina o membro tamanho 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 tamanho 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 miniporto.
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 miniporto controla diretamente um dispositivo físico. O dispositivo físico recebe recursos de hardware, como interrupções, portas de E/S, E/S mapeadas por memória ou canais de DMA que o driver de miniporto 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 mapeada por memória ou canais de DMA. Em vez disso, o driver se comunica com o dispositivo por meio da interface WDM do motorista de ônibus subjacente.
NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER
Defina se a NIC do chamador for um dispositivo DMA mestre de barramento.
NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND
Defina se o NDIS não deve chamar a função MiniportHaltEx de um driver de miniporte 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 miniporto puder 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 de MiniportDevicePnPEventNotify.
NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS
Definido por um driver de miniporto 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. A configuração 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 o NDPROXY a todos os drivers de miniporto 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 definida, a porta padrão estará ativa. O NDIS não associará drivers de protocolo nem anexará módulos de filtro a um adaptador de miniporto 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_NO_OID_INTERCEPT_ON_NONDEFAULT_PORTS
A partir do NDIS 6.30, esse sinalizador será definido se o driver de miniporto manipular OIDs em portas não padrão que geralmente são interceptadas e manipuladas pelo NDIS em seu nome. Isso não altera o comportamento dos OIDs destinados à porta padrão.
NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK
A partir dos miniportos NDIS 6.30, o NDIS não invocará o manipulador MiniportShutdownEx do miniporto 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 de 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 miniporto. 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 Turbo Channel.
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.
Observações
Um driver de miniporto passa um ponteiro para uma estrutura de 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 dentro de MiniportInitializeEx. Definir esses atributos é obrigatório.
Sinalizador de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND
O NDIS emite uma solicitação OID de OID_PNP_SET_POWER para o driver de miniporto 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 essa 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 miniportuário, conforme descrito abaixo:
- Se o sinalizador de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND não estiver definido, o NDIS chamará a função MiniportPause do driver de miniportuário antes que a solicitação OID de OID_PNP_SET_POWER seja emitida para o driver. Dentro do contexto da chamada MiniportPause, o driver deve aguardar a conclusão das indicações de pacote de recebimento pendentes.
-
Se o sinalizador de NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND estiver definido, o NDIS não chamará a função MiniportPause do driver de miniportuário 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.
Observação 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 é associado ou anexado ao adaptador de miniporto. Nesse caso, o NDIS chama a função MiniportPause do driver de miniport, independentemente de o driver de miniporto definir o sinalizador NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Com suporte no NDIS 6.0 e posterior. |
cabeçalho | ndis.h (inclua Ndis.h) |
Consulte também
operações de verificação e redefinição do adaptador de miniporto
MiniportDevicePnPEventNotify