次の方法で共有


セキュリティ記述子の操作

Windows API には、セキュリティ保護可能なオブジェクトに関連付けられている セキュリティ記述子 のコンポーネントを取得および設定するための関数が用意されています。 GetSecurityInfo を使用し、GetNamedSecurityInfo関数をして、オブジェクトのセキュリティ記述子へのポインターを取得します。 これらの関数は、セキュリティ記述子の個々のコンポーネント (DACL、SACL、所有者 SID、プライマリ グループ SID) へのポインターを取得することもできます。 SetSecurityInfo および SetNamedSecurityInfo関数使用して、オブジェクトのセキュリティ記述子のコンポーネントを設定します。

一般に、GetSecurityInfo使用 し、SetSecurityInfo をハンドルで識別されるオブジェクトと共に使用し、SetNamedSecurityInfoし、GetNamedSecurityInfoを名前で識別されたオブジェクトとする必要があります。 さまざまな種類のオブジェクトを操作するときに使用する特定の関数の詳細については、「セキュリティ保護可能なオブジェクトの を参照してください。

Windows API には、セキュリティ記述子のコンポーネントを操作するための追加の関数が用意されています。 アクセス制御リスト (DACL または SACL) の操作については、「ACL からの情報の取得」および「ACLの作成または変更」を参照してください。 SID の詳細については、「セキュリティ識別子 (SID)」を参照してください。

セキュリティ記述子で制御情報を取得するには、GetSecurityDescriptorControl 関数を呼び出します。 ACE の自動継承に関連する制御ビットを設定するには、SetSecurityDescriptorControl 関数を呼び出します。 他の制御ビットは、セキュリティ記述子コンポーネントを設定するさまざまな関数によって設定されます。 たとえば、SetSecurityInfo を使用してオブジェクトの DACL を変更する場合、関数は必要に応じてビットを設定またはクリアして、セキュリティ記述子に DACL があるかどうか、それが既定の DACL であるかどうかを示します。 もう 1 つの例は、セキュリティ記述子に含まれる リソース マネージャー (RM) 制御ビットです。 これらのビットはリソース マネージャーの実装に従って使用され、GetSecurityDescriptorRMControl および SetSecurityDescriptorRMControl関数経由でアクセスされます。