GetFileSecurityA 関数 (winbase.h)

GetFileSecurity 関数は、ファイルまたはディレクトリのセキュリティに関する指定された情報を取得します。 取得された情報は、呼び出し元のアクセス権と 特権によって制限されます。

GetNamedSecurityInfo 関数は、ファイルや他の種類のオブジェクトに対して GetFileSecurity と同様の機能を提供します。

構文

BOOL GetFileSecurityA(
  [in]            LPCSTR               lpFileName,
  [in]            SECURITY_INFORMATION RequestedInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in]            DWORD                nLength,
  [out]           LPDWORD              lpnLengthNeeded
);

パラメーター

[in] lpFileName

セキュリティ情報を取得するファイルまたはディレクトリを指定する null で終わる文字列へのポインター。

[in] RequestedInformation

要求されているセキュリティ情報を識別する SECURITY_INFORMATION 値。

[out, optional] pSecurityDescriptor

lpFileName パラメーターで指定されたオブジェクトのセキュリティ記述子のコピーを受け取るバッファーへのポインター。 呼び出し 元のプロセス には、オブジェクトのセキュリティ状態の指定された側面を表示するためのアクセス許可が必要です。 SECURITY_DESCRIPTOR構造体は、自己相対セキュリティ記述子形式で返されます。

[in] nLength

pSecurityDescriptor パラメーターが指すバッファーのサイズをバイト単位で指定します。

[out] lpnLengthNeeded

完全なセキュリティ記述子を格納するために必要なバイト数を受け取る変数へのポインター。 返されたバイト数が nLength 以下の場合、セキュリティ記述子全体が出力バッファーに返されます。それ以外の場合、記述子は返されません。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

指定したファイルまたはディレクトリのセキュリティ記述子から所有者、グループ、または DACL を読み取るために、ファイルまたはディレクトリの DACL で呼び出し元へのアクセスREAD_CONTROL許可するか、呼び出し元がファイルまたはディレクトリの所有者である必要があります。

ファイルまたはディレクトリの SACL を読み取るために、呼び出し元のプロセスに対してSE_SECURITY_NAME特権を有効にする必要があります。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winbase.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

関連項目

GetKernelObjectSecurity

GetNamedSecurityInfo

GetPrivateObjectSecurity

GetUserObjectSecurity

低レベルのAccess Control

低レベルのAccess Control関数

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity