NDK_FN_SEND función de devolución de llamada (ndkpi.h)
La función NdkSend (NDK_FN_SEND) publica una solicitud de envío en un par de colas de NDK (QP).
Sintaxis
NDK_FN_SEND NdkFnSend;
NTSTATUS NdkFnSend(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[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.
pSgl
Matriz de estructuras SGE (NDK_SGE) que representan los búferes que contienen los datos que se van a enviar.
[in] nSge
Número de estructuras SGE de la matriz especificada en el parámetro pSgl .
[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. |
|
Indica que la cola de finalización del elemento del mismo nivel genera una notificación. Para obtener más información sobre NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT, vea la sección Comentarios. |
|
Indica que la memoria a la que hacen referencia los SGE se debe transferir en línea. Además, el valor MemoryRegionToken de las entradas de NDK_SGE podría no ser válido. Las solicitudes insertadas no necesitan limitar el número de entradas de la lista SGE al valor MaxInitiatorRequestSge especificado cuando se creó el par de colas. La cantidad de memoria transferida insertada debe estar dentro de los límites de datos insertados del par de colas. |
|
Indica al proveedor de 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 NdkSend devuelve uno de los siguientes códigos NTSTATUS.
Código devuelto | Descripción |
---|---|
|
La solicitud de envío se publicó correctamente. Una entrada de finalización se pondrá en cola a la cola de finalización (CQ) cuando se complete la solicitud de trabajo. |
|
El par de colas (QP) no está conectado. |
|
Se produjo un error. |
Comentarios
NdkSend publica una solicitud de envío en un par de colas (QP).
Puede usar la marca de NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT si emite varias solicitudes de envío relacionadas. Establezca esta marca en la última solicitud del grupo de solicitudes de envío relacionadas.
Un consumidor de NDK puede usar esta marca al emitir varias solicitudes de envío relacionadas. El consumidor de NDK establece esta marca solo en la última solicitud de envío relacionada. El elemento del mismo nivel recibirá todas las solicitudes de envío como normales. Sin embargo, cuando el elemento del mismo nivel recibe la última solicitud de envío (la solicitud con la marca NDK_OP_FLAG_SEND_AND_SOLICIT_EVENT establecida), la cola de finalización del mismo nivel genera una notificación. La notificación se genera una vez completada la solicitud de recepción. Esta marca no tiene ningún significado para el receptor (del mismo nivel), a menos que el receptor haya llamado previamente a la función NdkArmCq (NDK_FN_ARM_CQ) con el tipo de notificación establecido en NDK_CQ_NOTIFY_SOLICITED.
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
Esquema de procesamiento diferido de NDKPI
Requisitos de publicación de solicitudes de trabajo de NDKPI