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).
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
)
{...}
[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 |
---|---|
|
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. |
|
Indica que todas las solicitudes de lectura anteriores deben completarse antes de que el hardware comience a procesar esta solicitud. |
|
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. |
|
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. |
|
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. |
La función NdkBind devuelve uno de los siguientes códigos NTSTATUS.
Código devuelto | Descripción |
---|---|
|
La solicitud se publicó correctamente. Una entrada de finalización se pondrá en cola en el CQ cuando se complete la solicitud de trabajo. |
|
El par de colas (QP) no está conectado. |
|
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. |
|
Se produjo un error. |
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.
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 |
Esquema de procesamiento diferido de NDKPI
Requisitos de publicación de solicitudes de trabajo de NDKPI