ProtocolBindAdapter
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