Freigeben über


NtSetSecurityObject-Funktion (ntifs.h)

Die NtSetSecurityObject Routine legt den Sicherheitsstatus eines Objekts fest.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtSetSecurityObject(
  [in] HANDLE               Handle,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Parameter

[in] Handle

Handle für das Objekt, dessen Sicherheitsstatus festgelegt werden soll. Dieses Handle muss über den in der Spalte "Bedeutung" der Tabelle angegebenen Zugriff verfügen, der in der Beschreibung des parameters SecurityInformation angezeigt wird.

[in] SecurityInformation

SECURITY_INFORMATION Wert, der die festzulegenden Informationen als Kombination aus einer oder mehreren der folgenden Werte angibt.

Wert Bedeutung
OWNER_SECURITY_INFORMATION Gibt an, dass der Besitzerbezeichner des Objekts festgelegt werden soll. Erfordert WRITE_OWNER Zugriff.
GROUP_SECURITY_INFORMATION Gibt an, dass der primäre Gruppenbezeichner des Objekts festgelegt werden soll. Erfordert WRITE_OWNER Zugriff.
SACL_SECURITY_INFORMATION Gibt an, dass die System-ACL (SACL) des Objekts festgelegt werden soll. Erfordert ACCESS_SYSTEM_SECURITY Zugriff.
DACL_SECURITY_INFORMATION Gibt an, dass die diskretionäre Zugriffssteuerungsliste (DACL) des Objekts festgelegt werden soll. Erfordert WRITE_DAC Zugriff.

[in] SecurityDescriptor

Zeiger auf den Sicherheitsdeskriptor, der für das Objekt festgelegt werden soll.

Rückgabewert

NtSetSecurityObject gibt STATUS_SUCCESS oder einen entsprechenden Fehlerstatus zurück. Mögliche Fehlerstatuscodes sind:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED Der Anrufer hat nicht über den erforderlichen Zugriff verfügt.
STATUS_ACCESS_VIOLATION SecurityDescriptor war ein NULL- Zeiger.
STATUS_INSUFFICIENT_RESOURCES Der Sicherheitsdeskriptor des Objekts konnte nicht erfasst werden.
STATUS_INVALID_ACL Der Sicherheitsdeskriptor des Objekts enthielt eine ungültige ACL.
STATUS_INVALID_HANDLE Handle ist kein gültiger Handle.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor nicht auf einen gültigen Sicherheitsdeskriptor verweisen.
STATUS_INVALID_SID Der Sicherheitsdeskriptor des Objekts enthielt eine ungültige SID.
STATUS_OBJECT_TYPE_MISMATCH Handle ist kein Handle des erwarteten Typs.
STATUS_UNKNOWN_REVISION Die Revisionsebene des Sicherheitsdeskriptors des Objekts wurde unbekannt oder nicht unterstützt.

Bemerkungen

Ein Sicherheitsdeskriptor kann in absoluter oder selbstrelativer Form sein. In selbstrelativer Form befinden sich alle Elemente der Struktur zusammenhängend im Speicher. In absoluter Form enthält die Struktur nur Zeiger auf die Member. Weitere Informationen finden Sie unter Absolute und Self-Relative Sicherheitsdeskriptoren.

Weitere Informationen zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.

Minifilter sollten FltSetSecurityObject- anstelle von NtSetSecurityObject-verwenden.

Aufrufer von NtSetSecurityObject müssen unter IRQL = PASSIVE_LEVEL und mit speziellen Kernel-APCs ausgeführt werden, dieaktiviert sind.

Anmerkung

Wenn der Aufruf der NtSetSecurityObject--Funktion im Benutzermodus auftritt, sollten Sie den Namen "NtSetSecurityObject" anstelle von "ZwSetSecurityObject" verwenden.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL (siehe Abschnitt "Hinweise")
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Siehe auch

FltSetSecurityObject-

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

NtQuerySecurityObject-

ZwSetSecurityObject-