ProtocolStatus
9/8/2008
Essa função é um exigido função driver que lida com status-notificações alteração geradas por um subjacente sem conexão driver adaptador rede ou pela NDIS.
Syntax
VOID ProtocolStatus(
NDIS_HANDLE ProtocolBindingContext,
NDIS_STATUS GeneralStatus,
PVOID StatusBuffer,
UINT StatusBufferSize
);
Parameters
- ProtocolBindingContext
[no] Especifica o identificador para uma área Protocol-allocated contexto no qual o driver protocolo mantém por-tempo de execução ligação estado. O driver fornecido este identificador quando ele chamado NdisOpenAdapter.
- GeneralStatus
[no] Indica a codificar geral status, gerado por NDIS ou propagados a partir de subjacente chamar do driver para NdisMIndicateStatus.
StatusBuffer
[no] Aponta para uma reserva contendo dados Medium-specific que dependem de valor de GeneralStatus.De exemplo, se a GeneralStatus argumento é NDIS_STATUS_RING_STATUS, este parâmetro aponta para um máscara de bits ULONG-sized e StatusBufferSize é quatro. Como outro exemplo, se GeneralStatus é NDIS_STATUS_WAN_LINE_UP, este parâmetro aponta para um NDIS_WAN_LINE_UP estrutura e StatusBufferSize é sizeof (NDIS_STATUS_WAN_LINE_UP).
Para alguns NDIS_STATUS_XXX Valores, esse ponteiro é NULL e StatusBufferSize é definido como zero.
- StatusBufferSize
[no] Especifica o número de bytes em StatusBuffer.
Return Value
Nenhum.
Remarks
Um chamar para ProtocolStatus Notifica o protocolo sobre as alterações no status do subjacente rede adaptador ou seu driver.
ProtocolStatus interpreta uma codificar status gerais. Codificar o General Status é definido pela NDIS como um NDIS_STATUS_XXX valor e indica uma alteração em adaptador de rede a subjacente ou driver
Se tiver NDIS chamado o subjacente do driver MiniportReset função em uma tentativa restaurar adaptador de rede para um estado operacional, NDIS pode substituir NDIS_STATUS_RESET_START para a GeneralStatus indicado no chamar de miniporta para NdisMIndicateStatus.
Depending on o status em GeneralStatus, informações adicionais sobre o motivo específico para a alteração no status, que pode ser Medium-specific
De exemplo, falhas de anel-Inserir são específicas para redes Token Ring (802.5) e não aplicar para redes Ethernet (802.3).
NDIS notifica todos ligado protocolos quando um subjacente driver está redefinindo o adaptador rede pelo chamado seus ProtocolStatus funções, primeira com NDIS_STATUS_RESET_START e posteriores, quando a operação redefinir é concluída, com NDIS_STATUS_RESET_END. Após cada tal chamar para um ProtocolStatus função, NDIS também chama do o driver ProtocolStatusComplete função.
Porque NDIS será não envia protocolo-iniciada aceitar e solicitações para uma miniporta enquanto um redefinir é avisa a notificação NDIS_STATUS_RESET_START em andamento, ligado protocolos para manter logoff em suas chamadas para NdisSendPackets, NdisSend, e NdisRequest Sobre a ligação designada pelos respectivos ProtocolBindingContext dado a seus ProtocolStatus funções até que recebem o correspondente notificação NDIS_STATUS_RESET_END.
Se o protocolo próprio iniciou a operação redefinir com um chamar para NdisReset, seu ProtocolStatus função recebe as notificações NDIS_STATUS_RESET_START e NDIS_STATUS_RESET_END como qualquer outro protocolo ligado para a mesma subjacente driver. No entanto, se NdisReset Retorna NDIS_STATUS_PENDING, somente o ProtocolStatusComplete função do driver que iniciou a operação redefinir é chamado.
Do Conseqüentemente, cada protocolo ProtocolStatus função deve tomar qualquer ação é exigido para evitar que o protocolo de envio envia e solicitações assim ProtocolStatus recebe a notificação NDIS_STATUS_RESET_START deve reabilitar envia subseqüente e solicita quando ProtocolStatus recebe a notificação NDIS_STATUS_RESET_END. Geralmente, ProtocolStatus Simplesmente Define e limpa um sinalizador ResetInProgress in a ProtocolBindingContext área que outros verificar funções driver antes que eles iniciar envia ou solicita na ligação.
Como outro exemplo, o ProtocolStatus função de qualquer protocolo ligado acima adaptador recebe uma notificação fila sempre que o subjacente rede de longa distância (WAN) adaptador de rede miniporta é estabelecer um novo link. Após tal um protocolo foi negociado com alças contexto link-specific com adaptador, seu ProtocolStatus função possa receber fila adicional de conexão específico, de linha para baixo e indicações de fragmento, que o protocolo pode usar para a taxa de transferência otimizar e / ou desempenho sobre o link.
Quando o subjacente driver adaptador rede sinaliza uma alteração status, ele não associado alteração evento contadores e limites.
Requirements
Header | ndis.h |
Library | Ndislib.lib |
Windows Embedded CE | Windows CE .NET 4.0 and later |
See Also
Reference
MiniportReset
NdisMIndicateStatus
NdisOpenAdapter
NdisRequest
NdisReset
NdisSend
ProtocolStatusComplete