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 |
---|---|
|
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. |
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 |