PFN_WSK_SEND コールバック関数 (wsk.h)
WskSend 関数は、接続指向またはストリーム ソケット経由でリモート トランスポート アドレスにデータを送信します。
構文
PFN_WSK_SEND PfnWskSend;
NTSTATUS PfnWskSend(
[in] PWSK_SOCKET Socket,
[in] PWSK_BUF Buffer,
[in] ULONG Flags,
[in, out] PIRP Irp
)
{...}
パラメーター
[in] Socket
データを送信するソケットのソケット オブジェクトを指定する WSK_SOCKET 構造体へのポインター。
[in] Buffer
ソケット経由で送信されるデータを含むデータ バッファーを記述する初期化された WSK_BUF 構造体へのポインター。
[in] Flags
次のフラグの組み合わせのビットごとの OR を含む ULONG 値。
WSK_FLAG_NODELAY
基になるトランスポートに、データと以前にキューに入れたデータを、遅延なくリモート アプリケーションにすぐに送信するように指示します。
このフラグは、Microsoft TCP/IP トランスポート プロトコルでサポートされています。 このフラグは、他のトランスポート プロトコルではサポートされていない可能性があります。
[in, out] Irp
WSK サブシステムが非同期的に送信操作を完了するために使用する、呼び出し元によって割り当てられた IRP へのポインター。 WSK 関数で IRP を使用する方法の詳細については、「 Winsock カーネル関数での IRP の使用」を参照してください。
戻り値
WskSend は 、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
ソケット経由でデータが正常に送信されました。 IRP は成功状態で完了します。 IRP の IoStatus.Information フィールドには、送信されたバイト数が含まれています。 |
|
WSK サブシステムは、ソケット経由でデータをすぐに送信できませんでした。 WSK サブシステムは、ソケット経由でデータを送信した後、IRP を完了します。 送信操作の状態は、IRP の IoStatus.Status フィールドに返されます。 操作が成功した場合、IRP の IoStatus.Information フィールドには、送信されたバイト数が含まれます。 |
|
ソケットは機能しなくなりました。 IRP は失敗状態で完了します。 WSK アプリケーションは、できるだけ早くソケットを閉じる には、WskCloseSocket 関数を呼び出す必要があります。 |
|
指定されたフラグは、基になるネットワーク トランスポートではサポートされていません。 |
|
エラーが発生しました。 IRP は失敗状態で完了します。 |
注釈
WSK アプリケーションは、以前にリモート トランスポート アドレスに接続されている接続指向またはストリーム ソケットでのみ 、WskSend 関数を呼び出すことができます。 接続指向ソケットは、次のいずれかの方法でリモート トランスポート アドレスに接続されます。
- WSK アプリケーションは、 WskConnect 関数を呼び出してソケットを接続します。
- WSK アプリケーションは、 WskSocketConnect 関数を呼び出してソケットを作成、バインド、接続します。
- WSK アプリケーションがリッスン しているソケットで受信接続要求を受け入れると、WSK サブシステムによってソケットが接続されます。
WSK サブシステムは、ソケット経由でデータを送信するときに、データのバッファリングを実行しません。 したがって、 WskSend 関数の呼び出しは、すべてのデータが実際に送信されるまで、WSK サブシステムによって完了されません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wsk.h (Wsk.h を含む) |
IRQL | <= DISPATCH_LEVEL |