NDK_FN_SEND_AND_INVALIDATE función de devolución de llamada (ndkpi.h)
La función NdkSendAndInvalidate (NDK_FN_SEND_AND_INVALIDATE) publica una solicitud de envío en un par de cola de NDK (QP) y proporciona un token que se invalidará en el mismo nivel remoto al finalizar la recepción.
Sintaxis
NDK_FN_SEND_AND_INVALIDATE NdkFnSendAndInvalidate;
NTSTATUS NdkFnSendAndInvalidate(
[in] NDK_QP *pNdkQp,
[in, optional] PVOID RequestContext,
const NDK_SGE *pSgl,
[in] ULONG nSge,
[in] ULONG Flags,
[in] UINT32 RemoteToken
)
{...}
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_EX 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 especifican las operaciones permitidas. Se admiten las marcas siguientes:
Valor | Significado |
---|---|
|
Si esta solicitud se realiza correctamente, no genera un evento de finalización en la cola de finalización de salida. Sin embargo, si se produce un error, genera un evento de finalización en la cola de finalización de salida. |
|
Todas las solicitudes de lectura anteriores deben completarse antes de que el hardware comience a procesar esta solicitud. |
|
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 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. |
[in] RemoteToken
Token remoto que se va a invalidar en el mismo nivel tras la finalización de la recepción. El proveedor NDK del mismo nivel receptor debe anular la conexión, tal como se especifica en las reglas de transporte de capa inferior, si el elemento del mismo nivel de envío especificó un token no válido.
Valor devuelto
La función NdkSendAndInvalidate 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 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
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.
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.
Cualquier estructura NDK_RESULT_EX que se agregue a una cola de finalización como resultado de una llamada a esta función debe especificar NdkOperationTypeSend para el miembro Type . Tenga en cuenta que no es necesario especificar un valor para el miembro TypeSpecificCompletionOutput de la estructura NDK_RESULT_EX .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Ninguno compatible, compatible con NDIS 6.40 y versiones posteriores. |
Servidor mínimo compatible | Windows Server 2012 R2 |
Plataforma de destino | Windows |
Encabezado | ndkpi.h (incluya Ndkpi.h) |
IRQL | <=DISPATCH_LEVEL |
Consulte también
Requisitos de control de finalización de NDKPI
Esquema de procesamiento diferido de NDKPI
Requisitos de publicación de solicitudes de trabajo de NDKPI