次の方法で共有


PFN_WSK_CONNECT コールバック関数 (wsk.h)

WskConnect 関数は、接続指向またはストリーム ソケットをリモート トランスポート アドレスに接続します。

構文

PFN_WSK_CONNECT PfnWskConnect;

NTSTATUS PfnWskConnect(
  [in]      PWSK_SOCKET Socket,
  [in]      PSOCKADDR RemoteAddress,
            ULONG Flags,
  [in, out] PIRP Irp
)
{...}

パラメーター

[in] Socket

リモート トランスポート アドレスに接続されているソケットのソケット オブジェクトを指定する WSK_SOCKET構造体への ポインター。

[in] RemoteAddress

ソケットを接続するリモート トランスポート アドレスを指定する構造体へのポインター。 このポインターは、WSK アプリケーションがソケットの作成時に指定したアドレス ファミリに対応する特定の SOCKADDR 構造体型へのポインターである必要があります。

Flags

このパラメーターは、システムで使用するために予約されています。 WSK アプリケーションでは、このパラメーターを 0 に設定する必要があります。

[in, out] Irp

WSK サブシステムが非同期的に接続操作を完了するために使用する呼び出し元によって割り当てられた IRP へのポインター。 WSK 関数での IRP の使用の詳細については、「 Winsock カーネル関数での IRP の使用」を参照してください。

戻り値

WskConnect は、次のいずれかの NTSTATUS コードを返します。

リターン コード 説明
STATUS_SUCCESS
ソケットがリモート トランスポート アドレスに正常に接続されました。 IRP は成功状態で完了します。
STATUS_PENDING
WSK サブシステムはソケットをすぐに接続できませんでした。 WSK サブシステムは、ソケットをリモート トランスポート アドレスに接続した後、IRP を完了します。 接続操作の状態は、IRP の IoStatus.Status フィールドに返されます。
STATUS_FILE_FORCED_CLOSED
ソケットは機能しなくなりました。 IRP は失敗状態で完了します。 WSK アプリケーションは、できるだけ早くソケットを閉じる には、WskCloseSocket 関数を呼び出す必要があります。
その他の状態コード
エラーが発生しました。 IRP は失敗状態で完了します。

注釈

WSK アプリケーションは、 WskBind 関数を呼び出すことによって、アプリケーションが以前にローカル トランスポート アドレスにバインドした接続指向またはストリーム ソケットでのみ WskConnect 関数を呼び出すことができます。

ストリーム ソケットの場合、 WskConnect がストリーム ソケットで正常に呼び出されると、ソケットは接続指向フローにコミットされ、リッスンしているソケット関数を呼び出さなくなる可能性があります。

WSK アプリケーションは、WskSocket 関数、WskBind 関数、および WskConnect 関数を呼び出すのではなく、WskSocketConnect 関数を呼び出すことで、1 つの関数呼び出しで接続指向ソケットを作成、バインド、接続できます。 WSK アプリケーションでソケット オプションを設定する必要がある場合や、ソケットをバインドまたは接続する前に I/O 制御操作を発行する必要がない限り、 WskSocketConnect 関数を呼び出すことをお勧めします。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header wsk.h (Wsk.h を含む)
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

Sockaddr

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskBind

WskCloseSocket

WskDisconnect

WskDisconnectEvent

WskSocket

WskSocketConnect