Compartilhar via


ProtocolBindAdapter

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Essa função é um exigido função driver para suporte Plug and Play.

Syntax

VOID ProtocolBindAdapter(
  PNDIS_STATUS Status,
  NDIS_HANDLE BindContext,
  PNDIS_STRING DeviceName,
  PVOID SystemSpecific1,
  PVOID SystemSpecific2
);

Parameters

  • Status
    [out] Aponta para uma variável no qual ProtocolBindAdapter Retorna o status de suas operações.
  • BindContext
    [no] Especifica um identificador (fornecido pelo NDIS) que o protocolo passa subseqüentemente para NdisCompleteBindAdapter.
  • DeviceName
    [no] Aponta para um armazenada em buffer seqüência de caracteres Unicode nomear um subjacente driver adaptador rede ou rede virtual driver adaptador ao qual ProtocolBindAdapter Deve BIND.
  • SystemSpecific1
    [no] Especifica um ponteiro caminho Registro que é exigido um parâmetro para NdisOpenProtocolConfiguration. O chamador não é possível usar esse ponteiro para qualquer outra finalidade.
  • SystemSpecific2
    [no] Reservado para uso sistema. O chamador não é possível usar esse ponteiro para qualquer finalidade.

Return Value

A seguinte tabela mostra os valores de retorno para esta função.

Valor Descrição

NDIS_STATUS_SUCCESS

O driver concluída inicialização com êxito e ligado próprio para o driver adaptador determinada rede especificado no DeviceName.

NDIS_STATUS_PENDING

O protocolo será completo de operação de ligação de forma assíncrona com um chamar para NdisCompleteBindAdapter Quando ele está pronto para aceitar recebe o subjacente do driver e para transmitir enviar, consulta e solicitações conjunto Down to o subjacente driver.

NDIS_STATUS_XXX ou Ntstatus_XXX

Tentativa do protocolo para configurar uma falha ligação ou o protocolo não pôde alocar os recursos necessárias para realizar operações rede E/S. Geralmente, esses um status de erro é propagada de um NDISXXX função ou um kernel-modo suporte rotina.

Remarks

ProtocolBindAdapter Executa dinâmico operações ligação sempre que um subjacente adaptador rede para que o protocolo pode BIND próprio fica disponível. Além disso, ProtocolBindAdapter Continua operações inicialização driver adiadas a partir de Inicialização de drivers de protocolo NDIS processo para suporte Plug e Play. ProtocolBindAdapter Aloca memória suficiente para manter por-tempo de execução ligação estado e chamadas NdisOpenAdapter Com a determinado BindContext e DeviceName Para BIND próprio para o subjacente driver.

Se NdisOpenAdapter Retorna do NDIS_STATUS_PENDING, o driver ProtocolOpenAdapterComplete função será chamado posteriormente quando a operação ligação é concluída. ProtocolBindAdapter deve armazenar a entrada BindContext identificador na área-alocado para por-estado ligação; o ProtocolBindContext identificador que ela fornecida para NdisOpenAdapter é um parâmetro de entrada para do o driver ProtocolOpenAdapterComplete função, que deve transmitir o BindContext identificador para NdisCompleteBindAdapter subseqüentemente. O subjacente driver adaptador rede retorna NDIS_STATUS_ADAPTER_NOT_READY para todas as solicitações que recebe enquanto o aberto operação está pendente. Conseqüentemente, ProtocolBindAdapter Não é possível chamar NdisRequest a consulta subjacente o driver se NdisOpenAdapter Retorna NDIS_STATUS_PENDING.

Nessas circunstâncias, ProtocolBindAdapter simplesmente define Status Para controle NDIS_STATUS_PENDING e retorna, deferring assim que ações o protocolo leva para configurar o estado Binding-specific e alocar recursos ligação-específicas para ProtocolOpenAdapterComplete Se essa função é chamado com uma entrada Status De NDIS_STATUS_SUCCESS.

Da mesma forma, se NdisOpenAdapter Retorna um status de erro, ProtocolBindAdapter Define Status Para o valor retornado, libera qualquer por - recursos ligação o driver foi alocado e retorna controle imediatamente. Caso contrário, um bem-sucedido ligação foi estabelecida e o protocolo pode receber indicações do subjacente driver para sua ProtocolStatus, ProtocolReceivePacket, e / ou ProtocolReceive funções.

Conseqüentemente, quando NdisOpenAdapter Retorna NDIS_STATUS_SUCCESS, ProtocolBindAdapter Aloca os recursos de driver precisa realizar rede E/S na ligação e configura qualquer estado tempo de execução Binding-specific o protocolo usa para controlar operações rede E/S. Se o script instalação do driver instalado informações configuração Adapter-Specific na seção protocolo do Registro, ProtocolBindAdapter Chamadas NdisOpenProtocolConfiguration e NdisReadConfiguration Para recuperar esta informações.

Depending on o subjacente mídia, ProtocolBindAdapter Também pode chamar NdisRequest to query the underlying driver (or NDIS) about the underlying driver's network adapter-specific limits, such as its maximum frame size, transmit/receive buffer space, and so forth, to set up appropriate state for the binding.

De um driver ProtocolReceivePacket Ou ProtocolReceive função pode ser chamado as soon as o protocolo configura um filtro pacote com OID_GEN_CURRENT_PACKET_FILTER Para a ligação. Para o NULL filtro, receber indicações estiver habilitado no retorno de um bem-sucedido chamar para NdisOpenAdapter.

Cada driver protocolo NDIS deve alocar pool suficientes pacote e transmite pool reserva a partir da qual alocar descritores pacote e reserva descritores de rede subseqüente e, possivelmente, para transferir subseqüente-solicitações dados, dependendo se o subjacente driver indica completa - pacote recebe com NdisMIndicateReceivePacket.

O ProtocolBindAdapter função de um intermediário NDIS driver é responsável por solicitar a inicialização do adaptador rede virtual do driver pelo chamado NdisIMInitializeDeviceInstanceEx Ou NdisIMInitializeDeviceInstance, que, por sua vez, chama do o driver MiniportInitialize função. Tal um driver deve inicializar seu adaptador rede virtual após ProtocolBindAdapter Estabelece uma ligação para o subjacente driver especificado no DeviceName. Protocolos que são níveis mais altos ainda não é possível BIND para tal um intermediário driver até que seu adaptador rede virtual foi inicializado.

Se ProtocolBindAdapter Não é possível alocar os recursos ele precisa para realizar operações subseqüentes rede E/S, ele deve livre todos os recursos ele já alocada, definido Status Para um apropriado valor de erro e controle de retorno.

Se o driver estiver pronto para executar rede E/S na ligação estabelecida, ProtocolBindAdapter Chamadas NdisCompleteBindAdapter Com NDIS_STATUS_SUCCESS para a Status e OpenStatus Argumentos.

Requirements

Header ndis.h
Library Ndislib.lib
Windows Embedded CE Windows CE .NET 4.0 and later

See Also

Reference

MiniportInitialize
NdisCompleteBindAdapter
NdisIMInitializeDeviceInstance
NdisIMInitializeDeviceInstanceEx
NdisMIndicateReceivePacket
NdisOpenAdapter
NdisOpenProtocolConfiguration
NdisReadConfiguration
NdisRequest
OID_GEN_CURRENT_PACKET_FILTER
ProtocolOpenAdapterComplete
ProtocolReceive
ProtocolReceivePacket
ProtocolStatus

Concepts

Initialization of NDIS Protocol Drivers