<Return[G]><Top>

GetFileSecurity

Declare Function Api_GetFileSecurity& Lib "advapi32" Alias "GetFileSecurityA" (ByVal lpFileName$, ByVal RequestedInformation&, pSecurityDescriptor As Byte, ByVal nLength&, lpnLengthNeeded&)

Declare Function GetFileSecurity Lib "advapi32" Alias "GetFileSecurityA" (ByVal lpFileName As String, ByVal RequestedInformation As Long, pSecurityDescriptor As Any, ByVal nLength As Long, lpnLengthNeeded As Long) As Long

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

パラメータ
lpFileName
    セキュリティ情報を取得するファイルまたはディレクトリを指定する、NULL で終わる文字列を指す。
RequestedInformation
    取得するセキュリティ情報を示す、SECURITY_INFORMATION のいずれかの値を指定する。
pSecurityDescriptor
    lpFileName パラメータで指定されたオブジェクトのセキュリティ記述子のコピーを受け取るバッファへを指す。

    呼び出し側のプロセスは、オブジェクトのセキュリティステータスのうち要求した要素を表示するための権利を備えていなければならない。

    SECURITY_DESCRIPTOR 構造体は、自己相対形式で返される。
nLength
    pSecurityDescriptor パラメータが指すバッファのサイズをバイト単位で指定する。
lpnLengthNeeded
    変数を指す。ファイル記述子のコピーに成功した場合、この関数はこの変数を 0 に設定する。

    バッファが小さすぎてセキュリティ記述子を収容できない場合、この変数は必要なバイト数を受け取る。

    この関数が制御を戻したときに、この変数の値が nLength パラメータの値より大きい場合、セキュリティ記述子のどの部分もバッファへはコ

    ピーされない。
 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    指定されたファイルまたはディレクトリの所有者、グループ、DACL のいずれかを読み取るには、そのファイルまたはディレクトリの DACL が

    呼び出し側に対して READ_CONTROL アクセス権を許可しているか、呼び出し側がファイルまたはディレクトリの所有者でなければならな

    い。
    ファイルまたはディレクトリの SACL(システムアクセス制御リスト)を読み取るには、呼び出し側のプロセスで SE_SECURITY_NAME 特

    権を有効にしておく必要がある。