次の方法で共有


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 コードを返します。

リターン コード 説明
STATUS_SUCCESS
ソケットがローカル トランスポート アドレスに正常にバインドされました。 IRP は成功状態で完了します。
STATUS_PENDING
WSK サブシステムはソケットをすぐにバインドできませんでした。 WSK サブシステムは、ソケットをローカル トランスポート アドレスにバインドした後、IRP を完了します。 バインド操作の状態は、IRP の IoStatus.Status フィールドに返されます。
STATUS_FILE_FORCED_CLOSED
ソケットは機能しなくなりました。 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

こちらもご覧ください

Sockaddr

WSK_PROVIDER_CONNECTION_DISPATCH WSK_PROVIDER_DATAGRAM_DISPATCH

WSK_PROVIDER_LISTEN_DISPATCH

WSK_PROVIDER_STREAM_DISPATCH

WSK_SOCKET

WskCloseSocket

WskConnect

WskSocket