Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función NdkFastRegister (NDK_FN_FAST_REGISTER) registra rápidamente una matriz de páginas lógicas del adaptador en una región de memoria existente.
Sintaxis
NDK_FN_FAST_REGISTER NdkFnFastRegister;
NTSTATUS NdkFnFastRegister(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
[in] NDK_MR *pMr,
[in] ULONG AdapterPageCount,
const NDK_LOGICAL_ADDRESS *AdapterPageArray,
[in] ULONG FBO,
[in] SIZE_T Length,
[in] PVOID BaseVirtualAddress,
[in] ULONG Flags
)
{...}
Parámetros
[in] pNdkQp
Puntero a un objeto de par de cola NDK (QP) (NDK_QP).
[in, optional] RequestContext
Valor de contexto que se va a devolver en el miembro requestContext de de la estructura de NDK_RESULT para esta solicitud.
[in] pMr
Puntero a un objeto de región de memoria NDK (MR) (NDK_MR) que se inicializó para el registro rápido.
[in] AdapterPageCount
Número de páginas del parámetro AdapterPageArray. El tamaño de cada página del adapterPageArray de es PAGE_SIZE bytes.
AdapterPageArray
Matriz de direcciones lógicas del adaptador (NDK_LOGICAL_ADDRESS) donde cada dirección es la dirección lógica inicial de una página. Cada dirección debe estar alineada con páginas que sean PAGE_SIZE bytes de longitud. Las direcciones consecutivas de la matriz no son necesariamente consecutivas en términos del espacio de direcciones lógicos, pero la matriz en su conjunto representa una región de memoria prácticamente contigua desde la perspectiva del sistema host.
[in] FBO
Primer desplazamiento de bytes (FBO) dentro de la primera página. La región registrada comienza en este desplazamiento.
[in] Length
Longitud, en bytes, de la región que se registra a partir del FBO. La longitud debe ser menor o igual que el número total de bytes representados por el primer conjunto (AdapterPageCount) de páginas contenidas en la matriz AdapterPageArray menos el FBO.
[in] BaseVirtualAddress
Valor de dirección virtual especificado por el consumidor para hacer referencia a la primera ubicación de bytes de la región de memoria. Este valor debe ser un múltiplo de PAGE_SIZE más FBO. Por lo tanto, los valores permitidos incluyen FBO o FBO más n veces el PAGE_SIZE donde n es mayor o igual que cero. Cero es un valor válido solo si FBO es cero.
[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 un evento 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 región de memoria para cualquier elemento del mismo nivel conectado. Para acceder a la región de memoria, los elementos del mismo nivel conectado deben tener un token válido. |
|
Permitir el acceso de escritura local a la región de memoria. |
|
Habilite el acceso de escritura a la región de memoria para cualquier elemento del mismo nivel conectado. Para acceder a la región de memoria, los elementos del mismo nivel conectado 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. |
Valor devuelto
La función NDK_FN_FAST_REGISTER 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 al CQ cuando se complete la solicitud de trabajo. |
|
El QP no está conectado. |
|
La región de memoria no se inicializó para el acceso remoto durante la inicialización de registro rápido, pero la solicitud de trabajo de registro rápido especificada NDK_OP_FLAG_ALLOW_REMOTE_READ o NDK_OP_FLAG_ALLOW_REMOTE_WRITE. |
|
Error. |
Observaciones
NdkFastRegister registra rápidamente una matriz de páginas lógicas del adaptador a través de una región de memoria existente que se inicializa para un registro rápido.
Una vez que se devuelve esta llamada, el token de región de memoria para el acceso remoto está disponible con la función NdkGetRemoteTokenFromMr (NDK_FN_GET_REMOTE_TOKEN_FROM_MR) de mr.
NdkFastRegister no admite direcciones virtuales basadas en cero.
Si la marca NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED no está establecida en el AdapterFlags miembro de la estructura de NDK_ADAPTER_INFO, un consumidor de NDK debe pasar la marca de NDK_OP_FLAG_RDMA_READ_SINK cuando registra la memoria que podría usarse como búfer receptor para una solicitud de lectura de RDMA. Algunos proveedores de NDK pueden requerir la habilitación de derechos de acceso especiales en el búfer del receptor para una solicitud de lectura rdma. Esta marca permite que estos proveedores admitan las solicitudes de registro correctamente. Tenga en cuenta que los búferes se pueden registrar con varios fines, por lo que esta marca puede ir acompañada de otras personas.
Si un consumidor de NDK pasa la marca NDK_OP_FLAG_RDMA_READ_SINK en un adaptador para el que se establece la marca NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED en el AdapterFlags miembro de la estructura de NDK_ADAPTER_INFO, el proveedor no debe controlar la marca NDK_OP_FLAG_RDMA_READ_SINK y no debe producir un error en la solicitud debido a la presencia. de esta marca.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Ninguna compatible, compatible con NDIS 6.30 y versiones posteriores. |
servidor mínimo admitido | Windows Server 2012 |
de la plataforma de destino de | Windows |
encabezado de | ndkpi.h (incluya Ndkpi.h) |
irQL | <=DISPATCH_LEVEL |
Consulte también
esquema de procesamiento diferido de NDKPI
requisitos de registro de solicitudes de trabajo de NDKPI