Função NmrClientAttachProvider (netioddk.h)

A função NmrClientAttachProvider anexa um módulo cliente a um módulo do 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 retorno de chamada NPI 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 residente 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 funções de retorno de chamada NPI para o módulo cliente. O módulo cliente deve garantir que essa estrutura permaneça válida e residente 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 como 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 NPI para o módulo do provedor. O conteúdo da estrutura é específico de NPI.

Retornar valor

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 status
Ocorreu um erro.

Comentários

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

Quando um módulo cliente chama a função NmrClientAttachProvider , o NMR chama a função de retorno de chamada ProviderAttachClient do módulo do provedor para concluir o processo de anexo. A função NmrClientAttachProvider retorna o código 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 deverá liberar a memória de sua estrutura de contexto de associação se 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 clienteFunção de retorno de chamada ClientCleanupBindingContext depois que o módulo cliente e o módulo do provedor são desanexados um do outro.

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

Requisitos

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

Confira também

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient