RtlSelfRelativeToAbsoluteSD 関数 (ntifs.h)
RtlSelfRelativeToAbsoluteSD ルーチンは、自己相対形式のセキュリティ記述子をテンプレートとして使用して、新しいセキュリティ記述子を絶対形式で作成します。
構文
NTSYSAPI NTSTATUS RtlSelfRelativeToAbsoluteSD(
[in] PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
[out] PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
[in, out] PULONG AbsoluteSecurityDescriptorSize,
[out] PACL Dacl,
[in, out] PULONG DaclSize,
[out] PACL Sacl,
[in, out] PULONG SaclSize,
[out] PSID Owner,
[in, out] PULONG OwnerSize,
[out] PSID PrimaryGroup,
[in, out] PULONG PrimaryGroupSize
);
パラメーター
[in] SelfRelativeSecurityDescriptor
自己相対形式のSECURITY_DESCRIPTOR構造体を含む呼び出し元によって割り当てられたバッファーへのポインター。 RtlSelfRelativeToAbsoluteSD は、元のセキュリティ記述子を変更せずに、このセキュリティ記述子のバージョンを絶対形式で作成します。
[out] AbsoluteSecurityDescriptor
絶対形式のセキュリティ記述子のメイン本文を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 この情報は、SECURITY_DESCRIPTOR構造体として書式設定されます。
[in, out] AbsoluteSecurityDescriptorSize
AbsoluteSecurityDescriptor パラメーターによって指されるバッファーのサイズをバイト単位で指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーがセキュリティ記述子を保持するのに十分な大きさでない場合、 RtlSelfRelativeToAbsoluteSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。
[out] Dacl
絶対形式のセキュリティ記述子の DACL を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] DaclSize
Dacl パラメーターによって指されるバッファーのサイズ (バイト単位) を指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーが DACL を保持するのに十分な大きさでない場合、 RtlSelfRelativeToAbsoluteSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。
[out] Sacl
絶対形式のセキュリティ記述子の SACL を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] SaclSize
Sacl パラメーターによって指されるバッファーのサイズ (バイト単位) を指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーが SACL を保持するのに十分な大きさでない場合、 RtlSelfRelativeToAbsoluteSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。
[out] Owner
絶対形式のセキュリティ記述子の所有者の SID を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] OwnerSize
Owner パラメーターによって指されるバッファーのサイズをバイト単位で指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーが SID を保持するのに十分な大きさでない場合、 RtlSelfRelativeToAbsoluteSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。
[out] PrimaryGroup
絶対形式のセキュリティ記述子のプライマリ グループの SID を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 絶対形式のセキュリティ記述子のメイン本文は、このポインターを参照します。
[in, out] PrimaryGroupSize
PrimaryGroup パラメーターによって指されるバッファーのサイズをバイト単位で指定する呼び出し元によって割り当てられた変数へのポインター。 バッファーが SID を保持するのに十分な大きさでない場合、 RtlSelfRelativeToAbsoluteSD は STATUS_BUFFER_TOO_SMALLを返し、この変数を必要な最小サイズに設定します。
戻り値
RtlSelfRelativeToAbsoluteSD は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
AbsoluteSecurityDescriptor パラメーターが指すバッファーに、絶対形式のSECURITY_DESCRIPTOR構造体が含まれていませんでした。 STATUS_BAD_DESCRIPTOR_FORMATはエラー コードです。 |
|
AbsoluteSecurityDescriptor、Dacl、Sacl、Owner、または PrimaryGroup パラメーターが指すバッファーが小さすぎます。 STATUS_BUFFER_TOO_SMALLはエラー コードです。 |
注釈
絶対形式のセキュリティ記述子には、情報自体を含むのではなく、情報へのポインターが含まれています。 自己相対形式のセキュリティ記述子には、連続するメモリ ブロック内に情報が含まれています。 自己相対セキュリティ記述子では、SECURITY_DESCRIPTOR構造体は常に情報を開始しますが、セキュリティ記述子の他のコンポーネントは任意の順序でSECURITY_DESCRIPTOR構造に従うことができます。 このセキュリティ記述子のコンポーネントは、メモリ アドレスを使用する代わりに、セキュリティ記述子の先頭からのオフセットによって識別されます。 この形式は、セキュリティ記述子をフロッピー ディスクに格納するか、通信プロトコルによって送信する必要がある場合に便利です。
AbsoluteSecurityDescriptor パラメーターは、絶対セキュリティ記述子のメイン本文のみを受け取ります。 絶対セキュリティ記述子全体は、このメイン本文に加えて、Dacl、Sacl、Owner、PrimaryGroup バッファーで返されるすべてのセキュリティ記述子コンポーネントで構成されます。 そのため、呼び出し元は RtlSelfRelativeToAbsoluteSD を呼び出した後にこれらのバッファーを解放できません。これを行うと、絶対セキュリティ記述子が無効になるためです。
絶対形式のセキュリティ記述子をテンプレートとして使用して自己相対形式で新しいセキュリティ記述子を作成するには、 RtlAbsoluteToSelfRelativeSD を使用します。
セキュリティとアクセス制御の詳細については、Microsoft Windows SDKドキュメントを参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Server 2003 SP1 |
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |