RxCeSendDatagram 函数 (rxce.h)

RxCeSendDatagram 将传输服务数据单元 (TSDU) 沿虚拟线路上的指定连接发送。

语法

NTSTATUS RxCeSendDatagram(
       IN PRXCE_ADDRESS                hAddress,
  [in] IN PRXCE_CONNECTION_INFORMATION pConnectionInformation,
       IN ULONG                        SendOptions,
  [in] IN PMDL                         pMdl,
  [in] IN ULONG                        SendLength,
  [in] IN PVOID                        pCompletionContext
);

参数

hAddress

指向要沿其发送 TSDU 的传输的指针。

[in] pConnectionInformation

指向包含远程地址的连接信息的指针。

SendOptions

指向包含远程地址的连接信息的指针。

[in] pMdl

指向要发送的缓冲区的指针。

[in] SendLength

要发送的数据的长度。

[in] pCompletionContext

SendCompletion 期间传递回调用方进行异步操作的上下文。 不是说,如果 Options 参数请求同步发送操作,则忽略此参数。

返回值

RxCeSendDatagram 在成功时返回STATUS_SUCCESS或失败时返回以下错误代码之一:

返回代码 说明
STATUS_INSUFFICIENT_RESOURCES
此例程所需的非分页池内存分配失败。
STATUS_INVALID_PARAMETER
SendLength 参数中根据指定的 Options 传递了无效的长度。

注解

RxCeSendDatagram 中使用的 Options 参数中指示的异步和同步选项区分两种情况。 在异步情况下,将请求成功提交到基础传输后,控制将返回到调用方。 任何给定请求的结果都使用 SendCompletion 回调例程传回。 RxCeSendDatagram 中的 pCompletionContext 参数在回调例程中传递回,以帮助调用方消除请求的歧义。

在同步情况下,请求提交到基础传输,并且控件不会返回到调用方,直到请求完成。 请注意,在同步情况下,将忽略 pCompletionContext 参数,并且返回的状态对应于操作的完成状态。

异步和同步选项的优点取决于基础传输。 在 (TCP 的虚拟线路环境中(例如,) ),同步选项意味着控件在数据到达服务器之前不会返回。 另一方面,对于面向数据报的传输 (UDP,例如) ,这两个选项之间差别很小。

请注意,对于发送数据报,将忽略同步 Option ,因为基础传输不会阻止数据报发送。

RXCE_CONNECTION_INFORMATIONTDI_CONNECTION_INFORMATION 结构的 typedef。

要求

要求
目标平台 桌面
标头 rxce.h (包括 Rxce.h、Tdi.h)
IRQL <= APC_LEVEL

另请参阅

MDL

RxCeSend

TDI_CONNECTION_INFORMATION