Partilhar via


Função NmrClientAttachProvider (netioddk.h)

A função NmrClientAttachProvider anexa um módulo cliente a um módulo de provedor.

Sintaxe

NTSTATUS NmrClientAttachProvider(
  [in]  HANDLE                 NmrBindingHandle,
  [in]  __drv_aliasesMem PVOID ClientBindingContext,
  [in]  const VOID             *ClientDispatch,
  [out] PVOID                  *ProviderBindingContext,
  [out] const VOID             **ProviderDispatch
);

Parâmetros

[in] NmrBindingHandle

Um identificador usado pela NMR para representar a associação entre o módulo cliente e o módulo do provedor. O NMR passa esse identificador para o módulo cliente quando chama a função de retorno de chamada ClientAttachProvider do módulo cliente.

[in] ClientBindingContext

Um ponteiro para um contexto fornecido pelo chamador para a associação entre o módulo cliente e o módulo do provedor. O módulo cliente usa esse contexto para acompanhar o estado da associação. O conteúdo do contexto de associação do módulo cliente é opaco para o módulo do provedor. O módulo do provedor passa esse ponteiro para o módulo cliente sempre que ele chama qualquer uma das funções de NPI de retorno de chamada do módulo cliente que exigem o contexto de associação do módulo cliente. O módulo cliente deve garantir que esse contexto permaneça válido e resida na memória, desde que o módulo do provedor esteja anexado ao módulo cliente.

[in] ClientDispatch

Um ponteiro para uma estrutura constante que contém a tabela de expedição de NPI funções de retorno de chamada para o módulo cliente. O módulo cliente deve garantir que essa estrutura permaneça válida e resida na memória, desde que o módulo do provedor esteja anexado ao módulo cliente. O conteúdo da estrutura é específico de NPI. Se a NPI não definir uma estrutura de tabela de expedição do cliente, o módulo cliente deverá definir esse parâmetro para NULL.

[out] ProviderBindingContext

Um ponteiro para uma variável que recebe um ponteiro para o contexto do módulo do provedor para a associação entre o módulo cliente e o módulo do provedor. O módulo do provedor usa esse contexto para acompanhar o estado da associação. O conteúdo do contexto de associação do módulo do provedor é opaco para o módulo cliente. O módulo cliente passa esse ponteiro para o módulo do provedor sempre que ele chama qualquer uma das funções NPI do módulo do provedor que exigem o contexto de associação do módulo do provedor.

[out] ProviderDispatch

Um ponteiro para uma variável que recebe um ponteiro para uma estrutura que contém a tabela de expedição de
funções de NPI para o módulo do provedor. O conteúdo da estrutura é específico de NPI.

Valor de retorno

A função NmrClientAttachProvider retorna um dos seguintes códigos NTSTATUS:

Código de retorno Descrição
STATUS_SUCCESS
O módulo cliente foi anexado com êxito ao módulo do provedor.
STATUS_NOINTERFACE
O módulo do provedor não foi anexado ao módulo cliente.
Outros códigos de status
Ocorreu um erro.

Observações

Um módulo cliente chama a função NmrClientAttachProvider de sua função ClientAttachProvider para se anexar a um módulo de provedor.

Quando um módulo cliente chama a função NmrClientAttachProvider, o NMR chama a função ProviderAttachClient do módulo de provedor para concluir o processo de anexo. A função NmrClientAttachProvider retorna o código de status retornado pela função de retorno de chamada ProviderAttachClient do módulo do provedor.

Se a função NmrClientAttachProvider não retornar STATUS_SUCCESS, o módulo cliente deverá executar qualquer limpeza necessária dos dados contidos em sua estrutura de contexto de associação. Em seguida, o módulo cliente deve liberar a memória para sua estrutura de contexto de associação se ele alocar dinamicamente a memória para a estrutura.

Se a função NmrClientAttachProvider retornar STATUS_SUCCESS e o módulo cliente alocar dinamicamente a memória para seu contexto de associação, o módulo cliente deverá liberar essa memória alocada quando o NMR chamar o módulo do cliente ClientCleanupBindingContext função de retorno de chamada depois que o módulo cliente e o módulo do provedor são desanexados uns dos outros.

Se a função NmrClientAttachProvider retornar STATUS_SUCCESS, o módulo cliente deverá salvar os ponteiros retornados no ProviderBindingContext e ProviderDispatch parâmetros para que ele possa chamar as funções de de NPI do módulo do provedor.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows.
da Plataforma de Destino Área de trabalho
cabeçalho netioddk.h (inclua Wsk.h)
biblioteca Netio.lib
IRQL PASSIVE_LEVEL

Consulte também

clientAttachProvider

ClientCleanupBindingContext

providerAttachClient