NDK_FN_BIND función de devolución de llamada (ndkpi.h)

La función NdkBind (NDK_FN_BIND) enlaza una ventana de memoria a una subregión específica de una región de memoria (MR).

Sintaxis

NDK_FN_BIND NdkFnBind;

NTSTATUS NdkFnBind(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
  [in]           NDK_MR *pMr,
  [in]           NDK_MW *pMw,
  [in]           PVOID VirtualAddress,
  [in]           SIZE_T Length,
  [in]           ULONG Flags
)
{...}

Parámetros

[in] pNdkQp

Puntero a un par de colas NDK (QP) (NDK_QP).

[in, optional] RequestContext

Valor de contexto que se va a devolver en el miembro RequestContext de la estructura NDK_RESULT para esta solicitud.

[in] pMr

Puntero a un objeto de región de memoria NDK (MR) (NDK_MR).

[in] pMw

Puntero a un objeto de ventana de memoria NDK (MW) (NDK_MW).

[in] VirtualAddress

Una dirección virtual que debe ser mayor o igual que la dirección virtual del MDL para la mr y menor que la dirección virtual del MDL para el MR más el valor del parámetro Length .

Use la macro MmGetMdlVirtualAddress para obtener la dirección virtual de MDL para mr.

[in] Length

Longitud del MR que se va a enlazar con el MW.

[in] Flags

OR bit a bit de marcas que especifica las operaciones permitidas. Se admiten las marcas siguientes:

Valor Significado
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
Indica que la finalización correcta de esta solicitud no genera un evento de finalización en la cola de finalización de salida. Sin embargo, las solicitudes que producen un error generan una finalización en la cola de finalización.
NDK_OP_FLAG_READ_FENCE
0x00000002
Indica que todas las solicitudes de lectura anteriores deben completarse antes de que el hardware comience a procesar esta solicitud.
NDK_OP_FLAG_ALLOW_REMOTE_READ
0x00000008
Habilite el acceso de lectura a la ventana de memoria para cualquier elemento del mismo nivel conectado. Para acceder a la ventana de memoria, los elementos del mismo nivel conectados deben tener un token válido.
NDK_OP_FLAG_ALLOW_REMOTE_WRITE
0x00000030
Habilite el acceso de escritura a la ventana de memoria para cualquier elemento del mismo nivel conectado. Para acceder a la ventana de memoria, los elementos del mismo nivel conectados deben tener un token válido.
NDK_OP_FLAG_DEFER
0x00000200
Indica al proveedor NDK que puede aplazar la solicitud al hardware para su procesamiento. Para obtener más información sobre esta marca, vea Esquema de procesamiento diferido de NDKPI.

Nota Esta marca solo se admite en NDKPI 1.2 (Windows Server 2012 R2) y versiones posteriores.

Valor devuelto

La función NdkBind devuelve uno de los siguientes códigos NTSTATUS.

Código devuelto Descripción
STATUS_SUCCESS
La solicitud se publicó correctamente. Una entrada de finalización se pondrá en cola en el CQ cuando se complete la solicitud de trabajo.
STATUS_CONNECTION_INVALID
El par de colas (QP) no está conectado.
STATUS_ACCESS_VIOLATION
La región de memoria no permite el tipo de acceso solicitado para la ventana de memoria. La marca NDK_OP_FLAG_ALLOW_WRITE requiere una región de memoria registrada con la marca NDK_MR_FLAG_ALLOW_LOCAL_WRITE.
Otros códigos de estado
Se produjo un error.

Comentarios

NdkBind enlaza una ventana de memoria (MW) a una subregión específica de una región de memoria (MR).

La dirección del parámetro VirtualAddress debe ser una dirección dentro de la región virtualmente contigua descrita por la cadena MDL especificada durante el registro de memoria. El proveedor debe tratar la dirección como un índice en la región de memoria. El proveedor no debe usar la dirección como una dirección virtual válida para leer o escribir contenido del búfer.

Una vez que se devuelva esta llamada, el token remoto estará disponible con la función NdkGetRemotetokenFromMw (NDK_FN_GET_REMOTE_TOKEN_FROM_MW).

Esta función no admite una dirección virtual basada en cero.

Requisitos

Requisito Value
Cliente mínimo compatible Ninguno compatible, compatible con NDIS 6.30 y versiones posteriores.
Servidor mínimo compatible Windows Server 2012
Plataforma de destino Windows
Encabezado ndkpi.h (incluya Ndkpi.h)
IRQL <=DISPATCH_LEVEL

Consulte también

MmGetMdlVirtualAddress

Esquema de procesamiento diferido de NDKPI

Requisitos de publicación de solicitudes de trabajo de NDKPI

NDK_FN_GET_REMOTE_TOKEN_FROM_MW

NDK_MR

NDK_MW

NDK_QP

NDK_RESULT