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 |
---|---|
|
O módulo cliente foi anexado com êxito ao módulo do provedor. |
|
O módulo do provedor não foi anexado ao módulo cliente. |
|
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 |