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 |
---|---|
|
Der Puffer, auf den der AbsoluteSecurityDescriptor-Parameter verweist, enthielt keine SECURITY_DESCRIPTOR Struktur im absoluten Format. STATUS_BAD_DESCRIPTOR_FORMAT ist ein Fehlercode. |
|
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 |