Freigeben über


RtlSelfRelativeToAbsoluteSD-Funktion (ntifs.h)

Die RtlSelfRelativeToAbsoluteSD Routine erstellt einen neuen Sicherheitsdeskriptor im absoluten Format, indem ein Sicherheitsdeskriptor im selbstrelativen Format als Vorlage verwendet wird.

Syntax

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
);

Parameter

[in] SelfRelativeSecurityDescriptor

Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, der eine SECURITY_DESCRIPTOR Struktur im selbstrelativen Format enthält. RtlSelfRelativeToAbsoluteSD- erstellt eine Version dieser Sicherheitsbeschreibung im absoluten Format, ohne das Original zu ändern.

[out] AbsoluteSecurityDescriptor

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der den Haupttext eines Absolutformat-Sicherheitsdeskriptors empfängt. Diese Informationen werden als SECURITY_DESCRIPTOR Struktur formatiert.

[in, out] AbsoluteSecurityDescriptorSize

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Byte angibt, auf den der AbsoluteSecurityDescriptor-Parameter verweist. Wenn der Puffer nicht groß genug ist, um den Sicherheitsdeskriptor zu enthalten, gibt RtlSelfRelativeToAbsoluteSD- STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die erforderliche Mindestgröße fest.

[out] Dacl

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die DACL des Sicherheitsdeskriptors für absolute Formate empfängt. Der Haupttext des Absolutformat-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] DaclSize

Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Byte angibt, auf den der Dacl-Parameter verweist. Wenn der Puffer nicht groß genug ist, um die DACL zu halten, gibt RtlSelfRelativeToAbsoluteSD- STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die erforderliche Mindestgröße fest.

[out] Sacl

Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, der die SACL des Sicherheitsdeskriptors im absoluten Format empfängt. Der Haupttext des Absolutformat-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] SaclSize

Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Byte angibt, auf den der Sacl-Parameter verweist. Wenn der Puffer nicht groß genug ist, um die SACL zu halten, gibt RtlSelfRelativeToAbsoluteSD- STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die erforderliche Mindestgröße fest.

[out] Owner

Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, der die SID des Besitzers der Sicherheitsbeschreibung im absoluten Format empfängt. Der Haupttext des Absolutformat-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] OwnerSize

Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Byte angibt, auf den der parameter Owner verweist. Wenn der Puffer nicht groß genug ist, um die SID zu halten, gibt RtlSelfRelativeToAbsoluteSD- STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die erforderliche Mindestgröße fest.

[out] PrimaryGroup

Zeigen Sie auf einen vom Aufrufer zugewiesenen Puffer, der die SID der primären Gruppe der Sicherheitsbeschreibung im absoluten Format empfängt. Der Haupttext des Absolutformat-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] PrimaryGroupSize

Zeigen Sie auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Byte angibt, auf den der parameter PrimaryGroup verweist. Wenn der Puffer nicht groß genug ist, um die SID zu halten, gibt RtlSelfRelativeToAbsoluteSD- STATUS_BUFFER_TOO_SMALL zurück und legt diese Variable auf die erforderliche Mindestgröße fest.

Rückgabewert

RtlSelfRelativeToAbsoluteSD- gibt STATUS_SUCCESS oder einen entsprechenden NTSTATUS-Wert wie einen der folgenden zurück:

Rückgabecode Beschreibung
STATUS_BAD_DESCRIPTOR_FORMAT
Der Puffer, auf den der AbsoluteSecurityDescriptor verweist, Parameter enthielt keine SECURITY_DESCRIPTOR Struktur im absoluten Format. STATUS_BAD_DESCRIPTOR_FORMAT ist ein Fehlercode.
STATUS_BUFFER_TOO_SMALL
Der Puffer, auf den der AbsoluteSecurityDescriptor , Dacl, Sacl, Owneroder PrimaryGroup Parameter zu klein war. STATUS_BUFFER_TOO_SMALL ist ein Fehlercode.

Bemerkungen

Ein Sicherheitsdeskriptor im absoluten Format enthält Zeiger auf die Informationen, anstatt die Informationen selbst zu enthalten. Ein Sicherheitsdeskriptor im selbstrelativen Format enthält die Informationen in einem zusammenhängenden Speicherblock. In einem selbstrelativen Sicherheitsdeskriptor startet eine SECURITY_DESCRIPTOR Struktur immer die Informationen, aber die anderen Komponenten des Sicherheitsdeskriptors können der SECURITY_DESCRIPTOR Struktur in beliebiger Reihenfolge folgen. Anstatt Speicheradressen zu verwenden, werden die Komponenten der Sicherheitsbeschreibung durch Offsets vom Anfang der Sicherheitsbeschreibung identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf einem Diskettendatenträger gespeichert oder über ein Kommunikationsprotokoll übertragen werden muss.

Beachten Sie, dass der AbsoluteSecurityDescriptor Parameter nur den Haupttext des absoluten Sicherheitsdeskriptors empfängt. Der gesamte absolute Sicherheitsdeskriptor besteht aus diesem Haupttext sowie allen Sicherheitsdeskriptorkomponenten, die in der Dacl-, Sacl-, Ownerund PrimaryGroup- Puffer zurückgegeben werden. Daher kann der Aufrufer diese Puffer nach dem Aufruf RtlSelfRelativeToAbsoluteSDnicht freigeben, da dadurch der absolute Sicherheitsdeskriptor ungültig würde.

Verwenden Sie RtlAbsoluteToSelfRelativeSD-, um einen neuen Sicherheitsdeskriptor im selbstrelativeND-Format zu erstellen, indem Sie einen Sicherheitsdeskriptor im absoluten Format als Vorlage verwenden.

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie in der Microsoft Windows SDK-Dokumentation.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Server 2003 SP1
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

ACL-

RtlAbsoluteToSelfRelativeSD

RtlCreateSecurityDescriptor-

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor-

RtlSetOwnerSecurityDescriptor-

RtlValidSecurityDescriptor