MakeAbsoluteSD 関数 (securitybaseapi.h)
MakeAbsoluteSD 関数は、自己相対形式のセキュリティ記述子をテンプレートとして使用して、絶対形式でセキュリティ記述子を作成します。
構文
BOOL MakeAbsoluteSD(
[in] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
[out, optional] PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
[in, out] LPDWORD lpdwAbsoluteSecurityDescriptorSize,
[out, optional] PACL pDacl,
[in, out] LPDWORD lpdwDaclSize,
[out, optional] PACL pSacl,
[in, out] LPDWORD lpdwSaclSize,
[out, optional] PSID pOwner,
[in, out] LPDWORD lpdwOwnerSize,
[out, optional] PSID pPrimaryGroup,
[in, out] LPDWORD lpdwPrimaryGroupSize
);
パラメーター
[in] pSelfRelativeSecurityDescriptor
自己相対形式の SECURITY_DESCRIPTOR 構造体へのポインター。 関数は、元のセキュリティ記述子を変更せずに、このセキュリティ記述子の絶対形式バージョンを作成します。
[out, optional] pAbsoluteSecurityDescriptor
関数が絶対形式のセキュリティ記述子のメイン本文で埋めるバッファーへのポインター。 この情報は、 SECURITY_DESCRIPTOR 構造体として書式設定されます。
[in, out] lpdwAbsoluteSecurityDescriptorSize
pAbsoluteSD パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーがセキュリティ記述子に十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。
[out, optional] pDacl
関数が入力するバッファーへのポインターは、絶対形式のセキュリティ記述子の 随意アクセス制御リスト (DACL) です。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] lpdwDaclSize
pDacl パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーがアクセス制御リスト (ACL) に十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。
[out, optional] pSacl
関数が入力するバッファーへのポインターは、絶対形式のセキュリティ記述子の システム アクセス制御リスト (SACL) です。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] lpdwSaclSize
pSacl パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーが ACL に対して十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。
[out, optional] pOwner
関数が入力するバッファーへのポインターは、絶対形式のセキュリティ記述子の所有者のセキュリティ 識別子 (SID) です。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] lpdwOwnerSize
pOwner パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーが SID に対して十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。
[out, optional] pPrimaryGroup
関数が入力するバッファーへのポインターは、絶対形式のセキュリティ記述子のプライマリ グループの SID です。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] lpdwPrimaryGroupSize
pPrimaryGroup パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーが SID に対して十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。
戻り値
関数が成功した場合、関数は 0 以外の値を返します。
関数が失敗すると、0 が返されます。 詳細なエラー情報を得るには、GetLastError を呼び出します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。
リターン コード/値 | Description |
---|---|
|
1 つ以上のバッファーが小さすぎます。 |
解説
絶対形式のセキュリティ記述子には、情報自体が含まれるのではなく、格納された情報へのポインターが含まれています。 自己相対形式のセキュリティ記述子には、連続するメモリ ブロック内に情報が含まれています。 自己相対セキュリティ記述子では、 SECURITY_DESCRIPTOR 構造体は常に情報を開始しますが、セキュリティ記述子の他のコンポーネントは任意の順序で構造体に従うことができます。 自己相対セキュリティ記述子のコンポーネントは、メモリ アドレスを使用する代わりに、セキュリティ記述子の先頭からのオフセットによって識別されます。 この形式は、セキュリティ記述子をフロッピー ディスクに格納するか、通信プロトコルによって送信する必要がある場合に便利です。
セキュリティで保護されたオブジェクトをさまざまなメディアにコピーするサーバーでは 、MakeAbsoluteSD 関数を使用して、自己相対セキュリティ記述子から絶対セキュリティ記述子を作成し、 MakeSelfRelativeSD 関数を使用して、絶対セキュリティ記述子から自己相対セキュリティ記述子を作成できます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP [デスクトップ アプリ | UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | securitybaseapi.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |