MakeSelfRelativeSD 関数 (securitybaseapi.h)

MakeSelfRelativeSD 関数は、絶対形式のセキュリティ記述子をテンプレートとして使用して、自己相対形式のセキュリティ記述子を作成します。

構文

BOOL MakeSelfRelativeSD(
  [in]            PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
  [out, optional] PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
  [in, out]       LPDWORD              lpdwBufferLength
);

パラメーター

[in] pAbsoluteSecurityDescriptor

絶対形式の SECURITY_DESCRIPTOR 構造体へのポインター。 関数は、元のセキュリティ記述子を変更せずに、自己相対形式でこのセキュリティ記述子のバージョンを作成します。

[out, optional] pSelfRelativeSecurityDescriptor

関数が自己相対形式のセキュリティ記述子で埋めるバッファーへのポインター。

[in, out] lpdwBufferLength

pSelfRelativeSD パラメーターによって指されるバッファーのサイズを指定する変数へのポインター。 バッファーがセキュリティ記述子に十分な大きさでない場合、関数は失敗し、この変数を必要な最小サイズに設定します。

戻り値

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

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。 可能なリターン コードには、次のものが含まれますが、これらに限定されません。

リターン コード/値 Description
ERROR_INSUFFICIENT_BUFFER
0x7A
1 つ以上のバッファーが小さすぎます。

解説

絶対形式のセキュリティ記述子には、情報自体が含まれるのではなく、格納された情報へのポインターが含まれています。 自己相対形式のセキュリティ記述子には、連続するメモリ ブロック内に情報が含まれています。 自己相対セキュリティ記述子では、 SECURITY_DESCRIPTOR 構造体は常に情報を開始しますが、セキュリティ記述子の他のコンポーネントは任意の順序で構造に従うことができます。 このセキュリティ記述子のコンポーネントは、メモリ アドレスを使用する代わりに、セキュリティ記述子の先頭からのオフセットによって識別されます。 この形式は、セキュリティ記述子をフロッピー ディスクに格納するか、通信プロトコルによって送信する必要がある場合に便利です。

セキュリティで保護されたオブジェクトをさまざまなメディアにコピーするサーバーは 、MakeSelfRelativeSD 関数を使用して、絶対セキュリティ記述子から自己相対セキュリティ記述子を作成し、 MakeAbsoluteSD 関数を使用して自己相対セキュリティ記述子から絶対セキュリティ記述子を作成できます。

要件

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

こちらもご覧ください

低レベルのAccess Control

低レベルのAccess Control関数

MakeAbsoluteSD

SECURITY_DESCRIPTOR