TreeSetNamedSecurityInfoA 関数 (aclapi.h)
この関数のこのバージョンはサポートされていません。 この関数のワイド文字バージョン TreeSetNamedSecurityInfoW がサポートされています。
構文
DWORD TreeSetNamedSecurityInfoA(
[in] LPSTR pObjectName,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[in, optional] PSID pOwner,
[in, optional] PSID pGroup,
[in, optional] PACL pDacl,
[in, optional] PACL pSacl,
[in] DWORD dwAction,
[in] FN_PROGRESS fnProgress,
[in] PROG_INVOKE_SETTING ProgressInvokeSetting,
[in, optional] PVOID Args
);
パラメーター
[in] pObjectName
更新されたセキュリティ情報を受信するオブジェクトのルート ノード オブジェクトの名前を指定する null で終わる文字列へのポインター。 サポートされているオブジェクトは、レジストリ キーとファイル オブジェクトです。 さまざまなオブジェクトの種類の文字列形式の説明については、「 SE_OBJECT_TYPE」を参照してください。
[in] ObjectType
pObjectName パラメーターによって指定されたオブジェクトの型を示すSE_OBJECT_TYPE列挙体の値。 サポートされている値は、レジストリ キーとファイル オブジェクトのSE_REGISTRY_KEYとSE_FILE_OBJECTです。
[in] SecurityInfo
設定するセキュリティ情報の種類を示すビット フラグのセット。 このパラメーターには、 SECURITY_INFORMATION ビット フラグの組み合わせを指定できます。
[in, optional] pOwner
オブジェクトの所有者を識別する SID 構造体へのポインター。 SID は、セキュリティ記述子の所有者 SID として割り当てることができる SID である必要があります。 SecurityInfo パラメーターには、OWNER_SECURITY_INFORMATION フラグを含める必要があります。 所有者を設定するには、呼び出し元がルート オブジェクトを含む各オブジェクトにWRITE_OWNERアクセスできる必要があります。 所有者 SID を設定していない場合、このパラメーターは NULL にすることができます。
[in, optional] pGroup
オブジェクトのプライマリ グループを識別する SID 構造体へのポインター。 SecurityInfo パラメーターには、GROUP_SECURITY_INFORMATION フラグを含める必要があります。 グループを設定するには、呼び出し元がルート オブジェクトを含む各オブジェクトにWRITE_OWNERアクセスできる必要があります。 プライマリ グループ SID を設定しない場合、このパラメーターは NULL にすることができます。
[in, optional] pDacl
リセットされるオブジェクトの新しい DACL を表す アクセス制御リスト (ACL) 構造体へのポインター。 SecurityInfo パラメーターには、DACL_SECURITY_INFORMATION フラグを含める必要があります。 呼び出し元には、ルート オブジェクトを含む各オブジェクトへのREAD_CONTROLとWRITE_DACアクセス権が必要です。 DACL を設定していない場合、このパラメーターは NULL にすることができます。
[in, optional] pSacl
リセットされるオブジェクトの新しい SACL を表す ACL 構造体へのポインター。 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 にすることができます。
[in] dwAction
この関数の動作を指定します。 これは、AccCtrl.h で定義されている次のいずれかの値に設定する必要があります。
[in] fnProgress
TreeSetNamedSecurityInfo 関数の進行状況を追跡するために使用される関数へのポインター。 progress 関数のプロトタイプは次のとおりです。
#include <windows.h>
#include <Aclapi.h>
#pragma comment(lib, "Advapi32.lib")
typedef VOID (*FN_PROGRESS) (
IN LPWSTR pObjectName, // Name of object just processed
IN DWORD Status, // Status of operation on object
IN OUT PPROG_INVOKE_SETTING
pInvokeSetting, // When to set
IN PVOID Args, // Caller specific data
IN BOOL SecuritySet // Whether security was set
);
progress 関数は、ノードが処理されるときに、呼び出し元に進行状況とエラー情報を提供します。 呼び出し元は fnProgress で進行状況関数を指定し、ツリー操作中に TreeSetNamedSecurityInfo は最後に処理されたオブジェクトの名前、その操作のエラー状態、および現在のPROG_INVOKE_SETTING値を渡します。 呼び出し元は、 pInvokeSetting を使用してPROG_INVOKE_SETTING値を変更できます。
progress 関数を使用しない場合は、このパラメーターを NULL に設定 します。
[in] ProgressInvokeSetting
progress 関数の初期設定を指定する PROG_INVOKE_SETTING 列挙体の値。
[in, optional] Args
呼び出し元によって指定された進行状況関数引数の VOID へのポインター。
戻り値
関数が成功した場合、関数は ERROR_SUCCESSを返します。
関数が失敗した場合は、WinError.h で定義されたエラー コードを返します。
注釈
NULL 所有者、グループ、DACL、または SACL の設定は、この関数ではサポートされていません。
呼び出し元に、要求された所有者、グループ、DACL、SACL の更新をサポートするための適切な特権とアクセス許可が含まれていない場合、どの更新も実行されません。
この関数は、dwAction パラメーターの値が TREE_SEC_INFO_SET に設定され、ProgressInvokeSetting パラメーターの値が ProgressInvokePrePostError に設定され、fnProgress パラメーターが指す関数が pInvokeSetting パラメーターの値を ProgressInvokePrePostError に設定する場合、SetNamedSecurityInfo 関数と同じ機能を提供します。
この関数は TreeResetNamedSecurityInfo 関数に 似ています。
- TreeSetNamedSecurityInfo の dwAction パラメーターが TREE_SEC_INFO_RESET_KEEP_EXPLICIT に設定されている場合、この関数は TreeResetNamedSecurityInfo と等価であり、KeepExplicit パラメーターは TRUE に設定されます。
- TreeSetNamedSecurityInfo の dwAction パラメーターが TREE_SEC_INFO_RESET に設定されている場合、この関数は TreeResetNamedSecurityInfo に相当し、KeepExplicit パラメーターは FALSE に設定されます。
注意
aclapi.h ヘッダーは、TreeSetNamedSecurityInfo をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | aclapi.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |