SetSecurityInfo 関数 (aclapi.h)
SetSecurityInfo 関数は、指定したオブジェクトのセキュリティ記述子に指定されたセキュリティ情報を設定します。 呼び出し元は、ハンドルによってオブジェクトを識別します。
オブジェクトの SACL を設定するには、呼び出し元で SE_SECURITY_NAME 特権が有効になっている必要があります。
構文
DWORD SetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID psidOwner,
[in, optional] PSID psidGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl
);
パラメーター
[in] handle
セキュリティ情報を設定するオブジェクトへのハンドル。
[in] ObjectType
handle パラメーターによって識別されるオブジェクトの型を示すSE_OBJECT_TYPE列挙体のメンバー。
[in] SecurityInfo
設定するセキュリティ情報の種類を示すビット フラグのセット。 このパラメーターには、 SECURITY_INFORMATION ビット フラグの組み合わせを指定できます。
[in, optional] psidOwner
オブジェクトの所有者を識別する SID へのポインター。 SID は、セキュリティ記述子の所有者 SID として割り当てることができる SID である必要があります。 SecurityInfo パラメーターには、OWNER_SECURITY_INFORMATION フラグを含める必要があります。 所有者 SID を設定していない場合、このパラメーターは NULL にすることができます。
[in, optional] psidGroup
オブジェクトのプライマリ グループを識別する SID へのポインター。 SecurityInfo パラメーターには、GROUP_SECURITY_INFORMATION フラグを含める必要があります。 プライマリ グループ SID を設定していない場合、このパラメーターは NULL にすることができます。
[in, optional] pDacl
オブジェクトの新しい DACL へのポインター。 SecurityInfo パラメーターの値に DACL_SECURITY_INFORMATION フラグが含まれている場合を除き、このパラメーターは無視されます。 SecurityInfo パラメーターの値に DACL_SECURITY_INFORMATION フラグが含まれており、このパラメーターの値が NULL に設定されている場合、オブジェクトへのフル アクセスがすべてのユーザーに付与されます。 null DACL の詳細については、「DACL の作成」を参照してください。
[in, optional] pSacl
オブジェクトの新しい SACL へのポインター。 SecurityInfo パラメーターには、SACL_SECURITY_INFORMATION、LABEL_SECURITY_INFORMATION、ATTRIBUTE_SECURITY_INFORMATION、SCOPE_SECURITY_INFORMATION、またはBACKUP_SECURITY_INFORMATIONのいずれかのフラグを含める必要があります。 SACL_SECURITY_INFORMATIONまたはSCOPE_SECURITY_INFORMATIONを設定する場合、呼び出し元はSE_SECURITY_NAME特権を有効にする必要があります。 SACL を設定しない場合、このパラメーターは NULL にすることができます。
戻り値
関数が成功した場合、関数はERROR_SUCCESSを返します。
関数が失敗した場合、WinError.h で定義されている 0 以外のエラー コードが返されます。
注釈
オブジェクトの随意アクセス制御リスト (DACL) またはシステム アクセス制御リスト (SACL) 内の要素を設定する場合、ACE 継承規則に従って、継承可能なアクセス制御エントリ (ACE) が既存の子オブジェクトに自動的に伝達されます。
SetSecurityInfo 関数は、次の種類のオブジェクトで使用できます。
- NTFS 上のローカル ファイルまたはリモート ファイルまたはディレクトリ
- 名前付きパイプ
- ローカル プリンターまたはリモート プリンター
- ローカルまたはリモートの Windows サービス
- ネットワーク共有
- レジストリ キー
- セマフォ、イベント、ミューテックス、および待機可能タイマー
- プロセス、スレッド、ジョブ、およびファイル マッピング オブジェクト
- ウィンドウ ステーションとデスクトップ
- ディレクトリ サービス オブジェクト
SetSecurityInfo 関数は、優先順序に基づいてアクセス許可またはアクセス拒否 ACE の順序を変更しません。 継承可能な ACE を既存の子オブジェクトに伝達する場合、 SetSecurityInfo は継承された ACE を子オブジェクトの DACL 内のすべての非継承 ACE の後に順番に配置します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | aclapi.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |