PFN_WSK_BIND コールバック関数 (wsk.h)
WskBind 関数は、ソケットをローカル トランスポート アドレスにバインドします。
構文
PFN_WSK_BIND PfnWskBind;
NTSTATUS PfnWskBind(
[in] PWSK_SOCKET Socket,
[in] PSOCKADDR LocalAddress,
ULONG Flags,
[in, out] PIRP Irp
)
{...}
パラメーター
[in] Socket
バインドされているソケットのソケット オブジェクトを指定する WSK_SOCKET 構造体へのポインター。
[in] LocalAddress
ソケットをバインドするローカル トランスポート アドレスを指定する構造体へのポインター。 このポインターは、WSK アプリケーションがソケットの作成時に指定したアドレス ファミリに対応する特定の SOCKADDR 構造体型へのポインターである必要があります。
Flags
このパラメーターは、システムで使用するために予約されています。 WSK アプリケーションでは、このパラメーターを 0 に設定する必要があります。
[in, out] Irp
WSK サブシステムがバインド操作を非同期的に完了するために使用する呼び出し元によって割り当てられた IRP へのポインター。 WSK 関数で IRP を使用する方法の詳細については、「 Winsock カーネル関数での IRP の使用」を参照してください。
戻り値
WskBind は 、次のいずれかの NTSTATUS コードを返します。
リターン コード | 説明 |
---|---|
|
ソケットがローカル トランスポート アドレスに正常にバインドされました。 IRP は成功状態で完了します。 |
|
WSK サブシステムはソケットをすぐにバインドできませんでした。 WSK サブシステムは、ソケットをローカル トランスポート アドレスにバインドした後、IRP を完了します。 バインド操作の状態は、IRP の IoStatus.Status フィールドに返されます。 |
|
ソケットは機能しなくなりました。 IRP は失敗状態で完了します。 WSK アプリケーションは、できるだけ早くソケットを閉じる には、WskCloseSocket 関数を呼び出す必要があります。 |
|
エラーが発生しました。 IRP は失敗状態で完了します。 |
注釈
リッスンしているソケットの場合、 WskBind 関数を呼び出すと、指定されたローカル トランスポート アドレスで受信接続要求をリッスンするようにソケットが準備されます。 WSK アプリケーションでローカル ワイルドカード アドレスが指定されている場合、ソケットはすべてのローカル トランスポート アドレスで受信接続要求をリッスンします。
データグラム ソケットの場合、 WskBind 関数を呼び出すと、指定されたローカル トランスポート アドレスでデータグラムを送受信するソケットが準備されます。 WSK アプリケーションでローカル ワイルドカード アドレスが指定されている場合、ソケットはすべてのローカル トランスポート アドレスでデータグラムを受信し、システムのルーティング情報によって決定される適切なローカル トランスポート アドレスからデータグラムを送信します。
接続指向ソケットの場合、 WskBind 関数を呼び出すと、指定したローカル トランスポート アドレスにソケットがバインドされます。 WskConnect 関数を呼び出す前に 、WskBind を呼び出す必要があります。 WSK アプリケーションでローカル ワイルドカード アドレスが指定されている場合、アプリケーションが WskConnect を呼び出してソケットをリモート トランスポート アドレスに接続するときに、ネットワーク スタックによってソケットが適切なローカル トランスポート アドレスにバインドされます。 このような状況では、ローカル トランスポート アドレスは、システムのルーティング情報によって決定されます。
ストリーム ソケットの場合、 WskBind 関数を呼び出すと、指定したローカル トランスポート アドレスにソケットがバインドされます。 WSK アプリケーションでローカル ワイルドカード アドレスが指定されている場合、ネットワーク スタックはソケットを使用可能なローカル トランスポート アドレスにバインドします。 WskListen または WskConnect 関数を呼び出す前に、WskBind を呼び出す必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wsk.h (Wsk.h を含む) |
IRQL | <= DISPATCH_LEVEL |