Función NmrClientAttachProvider (netioddk.h)

La función NmrClientAttachProvider asocia un módulo cliente a un módulo de proveedor.

Sintaxis

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

Identificador utilizado por el NMR para representar el enlace entre el módulo cliente y el módulo de proveedor. NmR pasa este identificador al módulo cliente cuando llama a la función de devolución de llamada ClientAttachProvider del módulo cliente.

[in] ClientBindingContext

Puntero a un contexto proporcionado por el autor de la llamada para el enlace entre el módulo cliente y el módulo de proveedor. El módulo cliente usa este contexto para realizar un seguimiento del estado del enlace. El contenido del contexto de enlace del módulo cliente es opaco para el módulo del proveedor. El módulo de proveedor pasa este puntero al módulo cliente cada vez que llama a cualquiera de las funciones de devolución de llamada NPI del módulo cliente que requieren el contexto de enlace del módulo cliente. El módulo cliente debe asegurarse de que este contexto siga siendo válido y resida en la memoria siempre y cuando el módulo de proveedor esté asociado al módulo cliente.

[in] ClientDispatch

Puntero a una estructura constante que contiene la tabla de distribución de funciones de devolución de llamada NPI para el módulo cliente. El módulo cliente debe asegurarse de que esta estructura sigue siendo válida y residente en memoria siempre y cuando el módulo de proveedor esté asociado al módulo cliente. El contenido de la estructura es específico de NPI. Si el NPI no define una estructura de tabla de distribución de cliente, el módulo cliente debe establecer este parámetro en NULL.

[out] ProviderBindingContext

Puntero a una variable que recibe un puntero al contexto del módulo de proveedor para el enlace entre el módulo cliente y el módulo de proveedor. El módulo de proveedor usa este contexto para realizar un seguimiento del estado del enlace. El contenido del contexto de enlace del módulo de proveedor es opaco para el módulo cliente. El módulo cliente pasa este puntero al módulo de proveedor cada vez que llama a cualquiera de las funciones NPI del módulo del proveedor que requieren el contexto de enlace del módulo del proveedor.

[out] ProviderDispatch

Puntero a una variable que recibe un puntero a una estructura que contiene la tabla de distribución de
Funciones NPI para el módulo de proveedor. El contenido de la estructura es específico de NPI.

Valor devuelto

La función NmrClientAttachProvider devuelve uno de los siguientes códigos NTSTATUS:

Código devuelto Descripción
STATUS_SUCCESS
El módulo cliente se adjuntó correctamente al módulo de proveedor.
STATUS_NOINTERFACE
El módulo de proveedor no se adjuntó al módulo cliente.
Otros códigos de estado
Se produjo un error.

Comentarios

Un módulo cliente llama a la función NmrClientAttachProvider desde su función de devolución de llamada ClientAttachProvider para asociarse a sí mismo a un módulo de proveedor.

Cuando un módulo cliente llama a la función NmrClientAttachProvider , NMR llama a la función de devolución de llamada ProviderAttachClient del módulo del proveedor para completar el proceso de datos adjuntos. La función NmrClientAttachProvider devuelve el código de estado devuelto por la función de devolución de llamada ProviderAttachClient del módulo de proveedor.

Si la función NmrClientAttachProvider no devuelve STATUS_SUCCESS, el módulo cliente debe realizar cualquier limpieza necesaria de los datos contenidos en su estructura de contexto de enlace. A continuación, el módulo cliente debe liberar la memoria para su estructura de contexto de enlace si asignó dinámicamente la memoria para la estructura.

Si la función NmrClientAttachProvider devuelve STATUS_SUCCESS y el módulo cliente asigna dinámicamente la memoria para su contexto de enlace, el módulo cliente debe liberar esa memoria asignada cuando nmR llama al módulo cliente.La función de devolución de llamada ClientCleanupBindingContext después de que el módulo de cliente y el módulo de proveedor se desasocie entre sí.

Si la función NmrClientAttachProvider devuelve STATUS_SUCCESS, el módulo cliente debe guardar los punteros devueltos en los parámetros ProviderBindingContext y ProviderDispatch para que pueda llamar a las funciones NPI del módulo de proveedor.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.
Plataforma de destino Escritorio
Encabezado netioddk.h (incluya Wsk.h)
Library Netio.lib
IRQL PASSIVE_LEVEL

Consulte también

ClientAttachProvider

ClientCleanupBindingContext

ProviderAttachClient