PROTOCOL_CM_DROP_PARTY função de retorno de chamada (ndis.h)

A função ProtocolCmDropParty é necessária. O NDIS chama ProtocolCmDropParty para solicitar que o gerenciador de chamadas remova uma parte de uma chamada multiponto existente.

Nota Você deve declarar a função usando o tipo PROTOCOL_CM_DROP_PARTY . Para obter mais informações, consulte a seção Exemplos a seguir.
 

Sintaxe

PROTOCOL_CM_DROP_PARTY ProtocolCmDropParty;

NDIS_STATUS ProtocolCmDropParty(
  [in]           NDIS_HANDLE CallMgrPartyContext,
  [in, optional] PVOID CloseData,
  [in, optional] UINT Size
)
{...}

Parâmetros

[in] CallMgrPartyContext

Especifica o identificador para uma área de contexto alocada pelo gerenciador de chamadas na qual o gerenciador de chamadas mantém seu estado por parte. Esse identificador foi fornecido ao NDIS na função ProtocolCmAddParty dos gerenciadores de chamadas.

[in, optional] CloseData

Ponteiro para um buffer que contém dados específicos do cliente orientados à conexão que devem ser enviados pela conexão antes que a parte seja descartada. Esse parâmetro será NULL se o meio de rede subjacente não der suporte a transferências de dados ao fechar uma conexão.

[in, optional] Size

Especifica o comprimento, em bytes, do buffer em CloseData, zero se CloseData for NULL.

Retornar valor

ProtocolCmDropParty retorna o status de suas operações como um dos seguintes valores:

Código de retorno Descrição
NDIS_STATUS_SUCCESS
Indica que o gerenciador de chamadas retirou a parte com êxito, enviou todos os dados próximos e liberou os recursos alocados para sua área de contexto.
NDIS_STATUS_PENDING
Indica que o gerenciador de chamadas concluirá a solicitação para remover a parte de forma assíncrona. O gerenciador de chamadas deve chamar NdisCmDropPartyComplete quando todo o processamento for concluído para notificar o NDIS e o ator solicitante de que a parte foi descartada.
NDIS_STATUS_INVALID_DATA
Indica que CloseData foi especificado para o gerenciador de chamadas, mas o tipo de mídia não dá suporte ao envio de dados simultâneos com o encerramento da conexão.

Comentários

ProtocolCmDropParty comunica-se com dispositivos de controle de rede ou outros agentes específicos de mídia, conforme necessário para sua mídia, para remover uma parte de uma chamada multiponto existente. Se o gerenciador de chamadas for necessário para se comunicar com agentes de controle de rede (como um comutador de rede), ele deverá usar uma conexão virtual com os agentes de controle de rede estabelecidos em seu Função ProtocolBindAdapterEx .

Se CloseData não for NULL e o envio de dados no encerramento da conexão for compatível com seu tipo de mídia, o gerenciador de chamadas deverá transmitir os dados especificados em CloseData antes de concluir o encerramento. Se não houver suporte para o envio de dados simultâneos com encerramento de conexão pelo tipo de mídia, o gerenciador de chamadas deverá retornar o controle com NDIS_STATUS_INVALID_DATA.

Os gerenciadores de chamadas também devem liberar todos os recursos por parte que ele alocou e armazenou em CallMgrPartyContext . Além disso, o gerenciador de chamadas deve liberar o buffer armazenado CallMgrPartyContext em si. A falha ao fazer isso resultará em uma condição de perda de memória.

Exemplos

Para definir uma função ProtocolCmDropParty , primeiro você deve fornecer uma declaração de função que identifique o tipo de função que você está definindo. O Windows fornece um conjunto de tipos de função para drivers. Declarar uma função usando os tipos de função ajuda a Análise de Código para Drivers, SDV ( Verificador de Driver Estático ) e outras ferramentas de verificação a encontrar erros e é um requisito para escrever drivers para o sistema operacional Windows.

Por exemplo, para definir uma função ProtocolCmDropParty chamada "MyCmDropParty", use o tipo PROTOCOL_CM_DROP_PARTY conforme mostrado neste exemplo de código:

PROTOCOL_CM_DROP_PARTY MyCmDropParty;

Em seguida, implemente sua função da seguinte maneira:

_Use_decl_annotations_
NDIS_STATUS
 MyCmDropParty(
    NDIS_HANDLE  CallMgrPartyContext,
    PVOID  CloseData,
    UINT  Size
    )
  {...}

O tipo de função PROTOCOL_CM_DROP_PARTY é definido no arquivo de cabeçalho Ndis.h. Para identificar erros com mais precisão ao executar as ferramentas de análise de código, adicione a anotação Use_decl_annotations à sua definição de função. A anotação Use_decl_annotations garante que as anotações aplicadas ao tipo de função PROTOCOL_CM_DROP_PARTY no arquivo de cabeçalho sejam usadas. Para obter mais informações sobre os requisitos para declarações de função, consulte Declarando funções usando tipos de função de função para drivers NDIS.

Para obter informações sobre Use_decl_annotations, consulte Anotando o comportamento da função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte ProtocolCmDropParty (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte ProtocolCmDropParty (NDIS 5.1)) no Windows XP.
Plataforma de Destino Windows
Cabeçalho ndis.h (inclua Ndis.h)
IRQL <= DISPATCH_LEVEL

Confira também

NdisCmDropPartyComplete

ProtocolCmAddParty