次の方法で共有


SO_WSK_SECURITY

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

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

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

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

パラメーター 価値

RequestType

WskSetOption

ControlCode

SO_WSK_SECURITY

レベルの

SOL_SOCKET

InputSize

sizeof(PSECURITY_DESCRIPTOR)

InputBuffer

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

OutputSize

0

OutputBuffer

ヌル

OutputSizeReturned

ヌル

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

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

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

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

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

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

パラメーター 価値

RequestType

WskGetOption

ControlCode

SO_WSK_SECURITY

レベルの

SOL_SOCKET

InputSize

0

InputBuffer

ヌル

OutputSize

sizeof(PSECURITY_DESCRIPTOR)

OutputBuffer

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

OutputSizeReturned

ヌル

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

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

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

必要条件

バージョン

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

ヘッダ

Wsk.h (Wsk.h を含む)