Partilhar 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 VC retornado por NdisCoCreateVc.

[in] ProtocolPartyContext

Especifica o identificador para uma área de contexto residente alocada por chamador na qual o cliente manterá o estado por parte se a 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 seu 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.

Valor de retorno

Quando NdisClAddParty retorna qualquer coisa 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.

Observações

Antes de chamar NdisClAddParty, um cliente deve configurar uma conexão de vários pontos em seu 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 a ProtocolPartyContext e um ponteiro para uma variável dentro dessa área de contexto como os parâmetros de 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 determinado. O gerenciador de chamadas retorna um status de erro 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 status de erro final, como NDIS_STATUS_FAILURE, quando chamar NdisCmAddPartyComplete ou NdisMCmAddPartyComplete. Do cliente função ProtocolClAddPartyComplete deve verificar o argumento de de status de 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 de usuários 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 o VC de vários pontos quando ele adiciona com êxito a parte nessa VC.
  • Altere os parâmetros de tráfego para todas as partes já 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 para 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 NdisCl/Coxxx funções relativas à parte recém-adicionada.

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

Se uma chamada de vários pontos 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 de ProtocolPartyContext somente para solicitações de gerenciamento de chamadas específicas de terceiros subsequentes. Para transferências de dados por mídia de rede que não dão suporte a transferências por parte ou parâmetros de tráfego, o cliente deve usar o NdisVcHandle em vez disso.

Requisitos

Requisito Valor
de cliente com suporte mínimo 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.
da Plataforma de Destino Área de trabalho
cabeçalho ndis.h (inclua Ndis.h)
biblioteca Ndis.lib
IRQL <= DISPATCH_LEVEL
regras de conformidade de DDI Irql_Protocol_Driver_Function(ndis)

Consulte também

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClCloseCall

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisCoCreateVc

NdisCoOidRequest

NdisCoOidRequestComplete

NdisMCmAddPartyComplete

ProtocolClAddPartyComplete

ProtocolCmAddParty