次の方法で共有


RtlAbsoluteToSelfRelativeSD 関数 (ntifs.h)

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

構文

NTSYSAPI NTSTATUS RtlAbsoluteToSelfRelativeSD(
  [in]      PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
  [out]     PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
  [in, out] PULONG               BufferLength
);

パラメーター

[in] AbsoluteSecurityDescriptor

絶対形式の SECURITY_DESCRIPTOR 構造体を含む呼び出し元割り当てバッファーへのポインター。 RtlAbsoluteToSelfRelativeSD は、元のセキュリティ記述子を変更せずに自己相対形式でこのセキュリティ記述子のバージョンを作成します。

[out] SelfRelativeSecurityDescriptor

自己相対形式でセキュリティ記述子を受け取る呼び出し元によって割り当てられたバッファーへのポインター。

[in, out] BufferLength

SelfRelativeSecurityDescriptor パラメーターによって指されるバッファーのサイズをバイト単位で指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーがセキュリティ記述子を保持するのに十分な大きさでない場合、 RtlAbsoluteToSelfRelativeSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。

戻り値

RtlAbsoluteToSelfRelativeSD は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。

リターン コード 説明
STATUS_BAD_DESCRIPTOR_FORMAT
AbsoluteSecurityDescriptor パラメーターが指すバッファーに、絶対形式のSECURITY_DESCRIPTOR構造体が含まれていませんでした。 STATUS_BAD_DESCRIPTOR_FORMATはエラー コードです。
STATUS_BUFFER_TOO_SMALL
SelfRelativeSecurityDescriptor パラメーターが指すバッファーが小さすぎて、自己相対形式のセキュリティ記述子が格納されませんでした。 STATUS_BUFFER_TOO_SMALLはエラー コードです。

解説

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

自己相対形式のセキュリティ記述子をテンプレートとして使用して、新しいセキュリティ記述子を絶対形式で作成するには、 RtlSelfRelativeToAbsoluteSD を使用します。

セキュリティとアクセス制御の詳細については、Microsoft Windows SDKのドキュメントを参照してください。

要件

要件
サポートされている最小のクライアント Windows Server 2003 SP1
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe (カーネル モード);Ntdll.dll (ユーザー モード)
IRQL <= APC_LEVEL

こちらもご覧ください

ACL

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSelfRelativeToAbsoluteSD

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor