次の方法で共有


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 パラメーターに無効な長さが渡されました。

注釈

RxCeSendDatagram で使用される Options パラメーターに示されている非同期オプションと同期オプションは、2 つの状況を区別します。 非同期の場合、要求が基になるトランスポートに正常に送信されると、コントロールは呼び出し元に戻ります。 特定の要求の結果は、 SendCompletion コールバック ルーチンを使用して伝達されます。 RxCeSendDatagrampCompletionContext パラメーターはコールバック ルーチンで返され、呼び出し元が要求のあいまいさを解消するのに役立ちます。

同期の場合、要求は基になるトランスポートに送信され、要求が完了するまでコントロールは呼び出し元に戻りません。 同期の場合、 pCompletionContext パラメーターは無視され、返される状態は操作の完了状態に対応します。

非同期オプションと同期オプションの利点は、基になるトランスポートによって異なります。 仮想回線環境 (TCP など) では、同期オプションは、データがサーバーに到達するまでコントロールが戻らないことを意味します。 一方、データグラム指向トランスポート (UDP など) の場合、2 つのオプションの違いはほとんどありません。

基になるトランスポートはデータグラム送信でブロックされないため、同期 オプション はデータグラムの送信では無視されることに注意してください。

RXCE_CONNECTION_INFORMATION は、 TDI_CONNECTION_INFORMATION 構造体の typedef です。

要件

要件
対象プラットフォーム デスクトップ
Header rxce.h (Rxce.h、Tdi.h を含む)
IRQL <= APC_LEVEL

こちらもご覧ください

Mdl

RxCeSend

TDI_CONNECTION_INFORMATION