NDK_FN_WRITE回调函数 (ndkpi.h)

NdkWrite (NDK_FN_WRITE) 函数 (QP) 在 NDK 队列对上发布写入请求。

语法

NDK_FN_WRITE NdkFnWrite;

NTSTATUS NdkFnWrite(
  [in]           NDK_QP *pNdkQp,
  [in, optional] PVOID RequestContext,
                 const NDK_SGE *pSgl,
  [in]           ULONG nSge,
  [in]           UINT64 RemoteAddress,
  [in]           UINT32 RemoteToken,
  [in]           ULONG Flags
)
{...}

参数

[in] pNdkQp

指向 NDK 队列对的指针, (QP) 对象 (NDK_QP) 。

[in, optional] RequestContext

要在此请求NDK_RESULT结构的 RequestContext 成员中返回的上下文值。

pSgl

SGE 结构的数组 (NDK_SGE) ,表示包含要写入数据的缓冲区。

[in] nSge

pSgl 参数中指定的数组中的 SGE 结构数。

[in] RemoteAddress

要写入的远程地址,按本地主机的字节顺序提供。 NDK 使用者可能已向远程提供的值添加偏移量。

[in] RemoteToken

远程提供的内存令牌,这是 NDK 使用者的不透明字节数组。

[in] Flags

指定允许的操作的按位 OR 标志。 支持以下标志:

含义
NDK_OP_FLAG_SILENT_SUCCESS
0x00000001
指示此请求成功完成,但不会在出站完成队列中生成完成事件。 但是,失败的请求会在完成队列中生成完成。
NDK_OP_FLAG_READ_FENCE
0x00000002
指示在硬件开始处理此请求之前,所有以前的读取请求都必须完成。
NDK_OP_FLAG_DEFER
0x00000200
向 NDK 提供程序指示它可能会延迟向硬件请求进行处理。 有关此标志的详细信息,请参阅 NDKPI 延迟处理方案

注意此标志仅在 NDKPI 1.2 (Windows Server 2012 R2) 及更高版本中受支持。

返回值

NdkWrite 函数返回以下 NTSTATUS 代码之一。

返回代码 说明
STATUS_SUCCESS
请求已成功发布。 完成工作请求完成后,完成项将排队到完成队列 (CQ) 。
STATUS_CONNECTION_INVALID
(QP) 的队列对未连接。
其他状态代码
出现了错误。

注解

NdkWrite 将写入请求发布到队列对 (QP) 。

要求

   
最低受支持的客户端 NDIS 6.30 及更高版本中不支持。不支持。
最低受支持的服务器 Windows Server 2012
目标平台 Windows
标头 ndkpi.h (包括 Ndkpi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

NDKPI 延迟处理方案

NDKPI 工作请求发布要求

NDK_QP

NDK_RESULT

NDK_SGE