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.

Nota O intervalo de tempo limite deve ser maior do que o tempo de inicialização do driver de miniporto. Para obter mais informações, consulte Miniport Adapter Check-for-Hang and Reset Operations.
 

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

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportPause

MiniportResetEx

NDIS_OBJECT_HEADER

NdisMNetPnPEvent

NdisMSetMiniportAttributes

OID_PNP_SET_POWER