SetNamedSecurityInfoA 関数 (aclapi.h)
SetNamedSecurityInfo 関数は、指定したオブジェクトの セキュリティ記述子 に指定されたセキュリティ情報を設定します。 呼び出し元は、名前でオブジェクトを識別します。
構文
DWORD SetNamedSecurityInfoA(
[in] LPSTR pObjectName,
[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] pObjectName
セキュリティ情報を設定するオブジェクトの名前を指定する、null終了文字列へのポインター。 NTFS ファイル システム、ネットワーク共有、レジストリ キー、セマフォ、イベント、ミューテックス、ファイル マッピング、または待機可能タイマー上のローカルまたはリモート のファイルまたはディレクトリの名前を指定できます。
さまざまなオブジェクトの種類の文字列形式の説明については、SE_OBJECT_TYPEを参照してください。
[in] ObjectType
pObjectName パラメーターによって指定されたオブジェクトの型を示す SE_OBJECT_TYPE 列挙体の値。
[in] SecurityInfo
設定するセキュリティ情報の種類を示すビット フラグのセット。 このパラメーターには、SECURITY_INFORMATION ビット フラグの組み合わせを指定できます。
[in, optional] psidOwner
オブジェクトの所有者を識別する SID 構造体へのポインター。 呼び出し元に SeRestorePrivilege 定数がない場合 (特権定数を参照)、この SID は呼び出し元のトークンに含まれている必要があり、SE_GROUP_OWNER アクセス許可が有効になっている必要があります。
SecurityInfo パラメーターには、OWNER_SECURITY_INFORMATION フラグを含める必要があります。 所有者を設定するには、呼び出し元がオブジェクトへのWRITE_OWNERアクセス権を持っているか、SE_TAKE_OWNERSHIP_NAME権限が有効になっている必要があります。 SIDの所有者
[in, optional] psidGroup
オブジェクトのプライマリ グループを識別する SID へのポインター。
SecurityInfo パラメーターには、GROUP_SECURITY_INFORMATION フラグを含める必要があります。 プライマリ グループ SID を設定しない場合、このパラメーターは NULL
[in, optional] pDacl
オブジェクトの新しい DACL へのポインター。
SecurityInfo パラメーターには、DACL_SECURITY_INFORMATION フラグを含める必要があります。 呼び出し元は、オブジェクトへのWRITE_DACアクセス権を持っているか、オブジェクトの所有者である必要があります。 DACL を設定しない場合、このパラメーターは NULL
[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 以外のエラー コードが返されます。
備考
SetNamedSecurityInfo 関数は、次の種類のオブジェクトと共に使用できます。
- NTFS 上のローカルまたはリモートのファイルまたはディレクトリ
- ローカル プリンターまたはリモート プリンター
- ローカルまたはリモートの Windows サービス
- ネットワーク共有
- レジストリ キー
- セマフォ、イベント、ミューテックス、および待機可能タイマー
- ファイル マッピング オブジェクト
- ディレクトリ サービス オブジェクト
この関数は、プレーンテキスト
UNC パス (\Test\TestFolder など) によって示されるフォルダーのアクセス権を更新すると、元の継承された ACE が削除され、完全なボリューム パスは含まれません。
例
この関数を使用する例については、「
手記
aclapi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SetNamedSecurityInfo を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | aclapi.h |
ライブラリ | Advapi32.lib |
DLL | Advapi32.dll |
関連項目
GetNamedSecurityInfo を
GetSecurityInfo を
SID の
SetSecurityInfo の