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或失败时返回以下错误代码之一:
返回代码 | 说明 |
---|---|
|
此例程所需的非分页池内存分配失败。 |
|
SendLength 参数中根据指定的 Options 传递了无效的长度。 |
注解
RxCeSendDatagram 中使用的 Options 参数中指示的异步和同步选项区分两种情况。 在异步情况下,将请求成功提交到基础传输后,控制将返回到调用方。 任何给定请求的结果都使用 SendCompletion 回调例程传回。 RxCeSendDatagram 中的 pCompletionContext 参数在回调例程中传递回,以帮助调用方消除请求的歧义。
在同步情况下,请求提交到基础传输,并且控件不会返回到调用方,直到请求完成。 请注意,在同步情况下,将忽略 pCompletionContext 参数,并且返回的状态对应于操作的完成状态。
异步和同步选项的优点取决于基础传输。 在 (TCP 的虚拟线路环境中(例如,) ),同步选项意味着控件在数据到达服务器之前不会返回。 另一方面,对于面向数据报的传输 (UDP,例如) ,这两个选项之间差别很小。
请注意,对于发送数据报,将忽略同步 Option ,因为基础传输不会阻止数据报发送。
RXCE_CONNECTION_INFORMATION 是 TDI_CONNECTION_INFORMATION 结构的 typedef。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | rxce.h (包括 Rxce.h、Tdi.h) |
IRQL | <= APC_LEVEL |