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 パラメーターに無効な長さが渡されました。 |
注釈
RxCeSendDatagram で使用される Options パラメーターに示されている非同期オプションと同期オプションは、2 つの状況を区別します。 非同期の場合、要求が基になるトランスポートに正常に送信されると、コントロールは呼び出し元に戻ります。 特定の要求の結果は、 SendCompletion コールバック ルーチンを使用して伝達されます。 RxCeSendDatagram の pCompletionContext パラメーターはコールバック ルーチンで返され、呼び出し元が要求のあいまいさを解消するのに役立ちます。
同期の場合、要求は基になるトランスポートに送信され、要求が完了するまでコントロールは呼び出し元に戻りません。 同期の場合、 pCompletionContext パラメーターは無視され、返される状態は操作の完了状態に対応します。
非同期オプションと同期オプションの利点は、基になるトランスポートによって異なります。 仮想回線環境 (TCP など) では、同期オプションは、データがサーバーに到達するまでコントロールが戻らないことを意味します。 一方、データグラム指向トランスポート (UDP など) の場合、2 つのオプションの違いはほとんどありません。
基になるトランスポートはデータグラム送信でブロックされないため、同期 オプション はデータグラムの送信では無視されることに注意してください。
RXCE_CONNECTION_INFORMATION は、 TDI_CONNECTION_INFORMATION 構造体の typedef です。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | rxce.h (Rxce.h、Tdi.h を含む) |
IRQL | <= APC_LEVEL |