Compartilhar via


Função NdisClAddParty (ndis.h)

NdisClAddParty adiciona uma parte no VC de vários pontos do cliente.

Sintaxe

NDIS_STATUS NdisClAddParty(
  [in]      NDIS_HANDLE         NdisVcHandle,
  [in]      NDIS_HANDLE         ProtocolPartyContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [out]     PNDIS_HANDLE        NdisPartyHandle
);

Parâmetros

[in] NdisVcHandle

Ponteiro para o identificador de VC retornado por NdisCoCreateVc.

[in] ProtocolPartyContext

Especifica o identificador para uma área de contexto residente alocada pelo chamador na qual o cliente manterá o estado por parte se sua chamada for bem-sucedida.

[in, out] CallParameters

Ponteiro para uma estrutura do tipo CO_CALL_PARAMETERS em que o chamador especificou as informações de endereçamento para a parte a ser adicionada em sua VC de vários pontos.

[out] NdisPartyHandle

Ponteiro para uma variável a ser definida pelo NDIS se a operação de suplemento for bem-sucedida.

Retornar valor

Quando NdisClAddParty retorna algo diferente de NDIS_STATUS_PENDING, o cliente deve fazer uma chamada interna para sua Função ProtocolClAddPartyComplete . Caso contrário, o NDIS chamará a função ProtocolClAddPartyComplete do cliente quando essa operação for concluída.

Comentários

Antes de chamar NdisClAddParty, um cliente deve configurar uma conexão de vários pontos em sua VC com NdisClMakeCall, bem como alocar e inicializar sua área de contexto para que a parte seja adicionada. Os clientes geralmente passam um ponteiro para uma área de contexto como ProtocolPartyContext e um ponteiro para uma variável dentro dessa área de contexto como os parâmetros NdisPartyHandle quando chamam NdisClAddParty.

Uma chamada para NdisClAddParty faz com que o NDIS encaminhe essa solicitação para a função ProtocolCmAddParty do gerenciador de chamadas com a qual o cliente compartilha o NdisVcHandle fornecido. O gerenciador de chamadas retorna um erro status imediatamente ou, mais comumente, NDIS_STATUS_PENDING se tentar atender a essa solicitação. Se sua tentativa for rejeitada no ponto de extremidade remoto ou pelo driver de miniporto subjacente, o gerenciador de chamadas retornará um erro final status, como NDIS_STATUS_FAILURE, quando chamar NdisCmAddPartyComplete ou NdisMCmAddPartyComplete. O do clienteA função ProtocolClAddPartyComplete deve marcar o argumento Status de entrada para NDIS_STATUS_SUCCESS antes de continuar.

O meio de rede subjacente determina se um cliente pode especificar parâmetros de tráfego por parte de uma VC de vários pontos.

Se o meio de rede subjacente não oferecer suporte a parâmetros de tráfego por parte em VCs de vários pontos, um gerenciador de chamadas poderá fazer um dos seguintes sempre que um cliente tentar adicionar uma parte com uma especificação em CallParameters que não corresponda aos parâmetros de tráfego já estabelecidos para essa VC:

  • Rejeite a solicitação para adicionar uma nova parte.
  • Redefina os parâmetros de tráfego para aqueles já estabelecidos para a VC de vários pontos quando ele adicionar com êxito a parte nessa VC.
  • Altere os parâmetros de tráfego para todas as partes que já estão na VC quando ela adicionar a nova parte com êxito.
Se a operação de suplemento for bem-sucedida, a variável em NdisPartyHandle foi definida pelo NDIS como um identificador válido compartilhado entre o NDIS, o cliente e o gerenciador de chamadas. O cliente deve tratar esse identificador fornecido pelo NDIS como uma variável opaca a ser passada, não modificada e não interpretada, em chamadas subsequentes para funções NdisCl/CoXxx relativas à parte recém-adicionada.

Por sua vez, o NDIS passa o identificador ProtocolPartyContext fornecido pelo cliente em chamadas subsequentes para as funções ProtocolClXxx do cliente que dizem respeito a essa parte recém-adicionada, incluindo a chamada para ProtocolClAddPartyComplete.

Se uma chamada multiponto permite transferências em ambas as direções e/ou transferências por parte com parâmetros de tráfego por parte, depende do meio do driver de miniporto subjacente ao qual o cliente está associado. O NdisPartyHandle representa apenas a parte específica adicionada por uma chamada bem-sucedida para NdisClAddParty, em vez do VC de vários pontos. Consequentemente, o cliente pode usar sua área ProtocolPartyContext somente para solicitações subsequentes de gerenciamento de chamadas específicas de partes. Para transferências de dados por mídia de rede que não dão suporte a transferências ou parâmetros de tráfego por parte, o cliente deve usar o NdisVcHandle .

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisClAddParty (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisClAddParty (NDIS 5.1)) no Windows XP.
Plataforma de Destino Área de Trabalho
Cabeçalho ndis.h (inclua Ndis.h)
Biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
Regras de conformidade da DDI Irql_Protocol_Driver_Function(ndis)

Confira também

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisCoCreateVc

NdisCoOidRequest

NdisCoOidRequestComplete

NdisMCmAddPartyComplete

ProtocolClAddPartyComplete

ProtocolCmAddParty