PFN_WSK_CONNECT_EX コールバック関数 (wsk.h)
WskConnectEx 関数は、接続指向またはストリーム ソケットをリモート トランスポート アドレスに接続します。
WskConnectEx は WskConnect に似ていますが、必要に応じて接続同期中または接続後にデータのバッファーを送信することもできます。
構文
PFN_WSK_CONNECT_EX PfnWskConnectEx;
NTSTATUS PfnWskConnectEx(
[in] PWSK_SOCKET Socket,
[in] PSOCKADDR RemoteAddress,
[in, optional] PWSK_BUF Buffer,
ULONG Flags,
[in, out] PIRP Irp
)
{...}
パラメーター
[in] Socket
リモート トランスポート アドレスに接続されているソケットのソケット オブジェクトを指定する WSK_SOCKET構造体への ポインター。
[in] RemoteAddress
ソケットを接続するリモート トランスポート アドレスを指定する構造体へのポインター。 このポインターは、WSK アプリケーションがソケットの作成時に指定したアドレス ファミリに対応する特定の SOCKADDR 構造体型へのポインターである必要があります。
[in, optional] Buffer
接続同期中または接続後に送信するデータを含む、 WSK_BUF 構造体へのポインター。 許容される最大サイズ (バイト単位) は 65,535 です。
Flags
このパラメーターは、システムで使用するために予約されています。 WSK アプリケーションでは、このパラメーターを 0 に設定する必要があります。
[in, out] Irp
WSK サブシステムが非同期的に接続操作を完了するために使用する呼び出し元によって割り当てられた IRP へのポインター。 WSK 関数で IRP を使用する方法の詳細については、「 Winsock カーネル関数での IRP の使用」を参照してください。
戻り値
WskConnectEx は 、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
ソケットがリモート トランスポート アドレスに正常に接続されました。 IRP は成功状態で完了します。 |
|
WSK サブシステムはソケットをすぐに接続できませんでした。 WSK サブシステムは、ソケットをリモート トランスポート アドレスに接続した後、IRP を完了します。 接続操作の状態は、IRP の IoStatus.Status フィールドに返されます。 |
|
ソケットは機能しなくなりました。 IRP は失敗状態で完了します。 WSK アプリケーションは、できるだけ早くソケットを閉じる には、WskCloseSocket 関数を呼び出す必要があります。 |
|
WSK アプリケーションが Flags パラメーターにフラグを渡そうとしました ( WskConnectEx に対して有効なフラグが現在定義されていないため、これは許可されていません)。 |
|
WSK アプリケーションは、65,535 バイトを超えるバッファーを Buffer パラメーターに渡そうとしました。 |
|
エラーが発生しました。 IRP は失敗状態で完了します。 |
注釈
WSK アプリケーションは、WskSocket 関数、WskBind 関数、および WskConnectEx 関数を呼び出すのではなく、WskSocketConnect 関数を呼び出すことによって、1 つの関数呼び出しで接続指向ソケットを作成、バインド、接続できます。 WSK アプリケーションでソケット オプションを設定する必要がある場合や、ソケットをバインドまたは接続する前に I/O 制御操作を発行する必要がない限り、 WskSocketConnect 関数を呼び出すことをお勧めします。
WSK アプリケーションは、 WskBind 関数を呼び出すことによって、アプリケーションが以前にローカル トランスポート アドレスにバインドした接続指向またはストリーム ソケットでのみ 、WskConnectEx 関数を呼び出すことができます。
ストリーム ソケットの場合、 WskConnectEx がストリーム ソケットで正常に呼び出されると、ソケットは接続指向フローにコミットされ、リッスンしているソケット関数を呼び出さなくなる可能性があります。
Buffer パラメーターを使用すると、呼び出し元は、接続要求が完了するとすぐに、WSK_BUF構造の MDL を解放できます。
指定された送信バッファーを使用して WskConnectEx を呼び出す前に、WSK アプリケーションが WskControlSocket 関数を介して WSK ソケットに TCP_FASTOPEN オプションを設定した場合、システムは必要に応じて SYN パケット内のデータの一部またはすべてを送信します。 詳細については、「IPPROTO_TCP ソケット オプション」の TCP Fastopen オプションを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10 Version 1703 |
対象プラットフォーム | ユニバーサル |
Header | wsk.h (Wsk.h を含む) |
IRQL | <= DISPATCH_LEVEL |