次の方法で共有


SO_WSK_SECURITY

SO_WSK_SECURITY ソケット オプションを使用すると、WSK アプリケーションは、ソケットにセキュリティ記述子を適用するか、ソケットからソケットのセキュリティ記述子のキャッシュされたコピーを取得できます。 セキュリティ記述子は、ソケットがバインドされているローカル トランスポート アドレスの共有を制御します。

このソケット オプションは、リッスンしているソケット、データグラム ソケット、および接続指向のソケットにのみ適用されます。

WSK アプリケーションでこのソケット オプションを使用してソケットにセキュリティ記述子を適用する場合は、ソケットがローカル トランスポート アドレスにバインドされる前に、これを行う必要があります。

ソケットにセキュリティ記述子を適用するために、WSK アプリケーションは、次のパラメーターを使用して WskControlSocket 関数を呼び出します。

パラメーター

RequestType

WskSetOption

ControlCode

SO_WSK_SECURITY

Level

SOL_SOCKET

InputSize

sizeof(PSECURITY_DESCRIPTOR)

InputBuffer

PSECURITY_DESCRIPTOR 型変数へのポインター。 この変数には、WSK_CACHE_SD コントロール コードを使用して WskControlClient 関数を呼び出すことによって取得されたセキュリティ記述子のキャッシュされたコピーへのポインターが含まれている必要があります。

OutputSize

0

OutputBuffer

NULL

OutputSizeReturned

NULL

WSK アプリケーションは、WskControlSocket 関数を呼び出してソケットにセキュリティ記述子を適用するときに、IRP へのポインターを指定する必要があります。

WSK アプリケーションでこのソケット オプションを使用してソケットにセキュリティ記述子を適用する場合、新しいセキュリティ記述子は、以前にソケットに適用されていたセキュリティ記述子を置き換えます。

WSK アプリケーションは、IRP が完了するまで、セキュリティ記述子のキャッシュされたコピーを解放しないでください。

WSK アプリケーションは、WskSocket または WskSocketConnect 関数を呼び出すときに SecurityDescriptor パラメーターでセキュリティ記述子のキャッシュされたコピーへのポインターを指定することによって、ソケットが最初に作成されたときに、ソケットにセキュリティ記述子を適用することもできます。

WSK アプリケーションがソケットにセキュリティ記述子を適用しない場合、WSK サブシステムはローカル トランスポート アドレスの共有を許可しない既定のセキュリティ記述子を使用します。

ソケットからソケットのセキュリティ記述子のキャッシュされたコピーを取得するために、WSK アプリケーションは次のパラメーターを使用して WskControlSocket 関数を呼び出します。

パラメーター

RequestType

WskGetOption

ControlCode

SO_WSK_SECURITY

Level

SOL_SOCKET

InputSize

0

InputBuffer

NULL

OutputSize

sizeof(PSECURITY_DESCRIPTOR)

OutputBuffer

PSECURITY_DESCRIPTOR 型変数へのポインター。 この変数は、ソケットのセキュリティ記述子のキャッシュされたコピーへのポインターを受け取ります。

OutputSizeReturned

NULL

WSK アプリケーションは、ソケットからソケットのセキュリティ記述子のキャッシュされたコピーを取得する WskControlSocket 関数を呼び出すときに IRP へのポインターを指定する必要があります。

WSK アプリケーションは、セキュリティ記述子のキャッシュされたコピーが不要になったときに解放するために、WSK_RELEASE_SD コントロール コードを使用して WskControlClient 関数を呼び出す必要があります。

詳細については、SECURITY_DESCRIPTOR 構造体のリファレンス ページを参照してください。

要件

バージョン

Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。

ヘッダー

Wsk.h (Wsk.h のインクルード)