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

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der eine SECURITY_DESCRIPTOR Struktur im selbstrelativen Format enthält. RtlSelfRelativeToAbsoluteSD erstellt eine Version dieses Sicherheitsdeskriptors im absoluten Format, ohne das Original zu ändern.

[out] AbsoluteSecurityDescriptor

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der den Standard Textkörper eines absoluten Format-Sicherheitsdeskriptors empfängt. Diese Informationen sind als SECURITY_DESCRIPTOR-Struktur formatiert.

[in, out] AbsoluteSecurityDescriptorSize

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Bytes angibt, auf den der AbsoluteSecurityDescriptor-Parameter verweist. Wenn der Puffer nicht groß genug ist, um den Sicherheitsdeskriptor zu halten, 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 absoluten Formatsicherheitsdeskriptors empfängt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] DaclSize

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

[out] Sacl

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die SACL des absoluten Format-Sicherheitsdeskriptors empfängt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] SaclSize

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

[out] Owner

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die SID des Besitzers des absoluten Format-Sicherheitsdeskriptors empfängt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] OwnerSize

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

[out] PrimaryGroup

Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der die SID der primären Gruppe des absoluten Format-Sicherheitsdeskriptors empfängt. Der Standard Textkörper des absoluten Format-Sicherheitsdeskriptors verweist auf diesen Zeiger.

[in, out] PrimaryGroupSize

Zeiger auf eine vom Aufrufer zugewiesene Variable, die die Größe des Puffers in Bytes angibt, auf den der PrimaryGroup-Parameter verweist. Wenn der Puffer nicht groß genug ist, um die SID aufzunehmen, 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 zurück, z. B. einen der folgenden:

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

Hinweise

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 des Sicherheitsdeskriptors durch Offsets vom Anfang des Sicherheitsdeskriptors identifiziert. Dieses Format ist nützlich, wenn ein Sicherheitsdeskriptor auf einer Diskette gespeichert oder mithilfe eines Kommunikationsprotokolls übertragen werden muss.

Beachten Sie, dass der AbsoluteSecurityDescriptor-Parameter nur den Standard Textkörper des absoluten Sicherheitsdeskriptors empfängt. Die gesamte absolute Sicherheitsbeschreibung besteht aus diesem Standard Text sowie allen Sicherheitsbeschreibungskomponenten, die in den Puffern Dacl, Sacl, Owner und PrimaryGroup zurückgegeben werden. Daher kann der Aufrufer diese Puffer nach dem Aufruf von RtlSelfRelativeToAbsoluteSD nicht freigeben, da dadurch die absolute Sicherheitsbeschreibung ungültig würde.

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

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Server 2003 SP1
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Weitere Informationen

ACL

RtlAbsoluteToSelfRelativeSD

RtlCreateSecurityDescriptor

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor