Freigeben über


FltSetSecurityObject-Funktion (fltkernel.h)

FltSetSecurityObject legt den Sicherheitsstatus eines Objekts fest.

Syntax

NTSTATUS FLTAPI FltSetSecurityObject(
  [in] PFLT_INSTANCE        Instance,
  [in] PFILE_OBJECT         FileObject,
  [in] SECURITY_INFORMATION SecurityInformation,
  [in] PSECURITY_DESCRIPTOR SecurityDescriptor
);

Parameter

[in] Instance

Undurchsichtiger Instanzzeiger für den Aufrufer. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

[in] FileObject

Dateiobjektzeiger für das Objekt, dessen Sicherheitsstatus festgelegt werden soll. Der Aufrufer muss über den in der Spalte "Bedeutung" der Tabelle angegebenen Zugriff verfügen, der in der Beschreibung des SecurityInformation-Parameters angezeigt wird. Dieser Parameter ist erforderlich und kann nicht NULL-werden.

[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.
DACL_SECURITY_INFORMATION Gibt an, dass die diskretionäre Zugriffssteuerungsliste (DACL) des Objekts festgelegt werden soll. Erfordert WRITE_DAC Zugriff.
SACL_SECURITY_INFORMATION Gibt an, dass die System-ACL (SACL) des Objekts festgelegt werden soll. Erfordert ACCESS_SYSTEM_SECURITY Zugriff.

[in] SecurityDescriptor

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

Rückgabewert

FltSetSecurityObject gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_ACCESS_DENIED Der Anrufer hat nicht über den erforderlichen Zugriff verfügt. Dies ist ein Fehlercode.
STATUS_ACCESS_VIOLATION SecurityDescriptor war ein NULL- Zeiger. Dies ist ein Fehlercode.
STATUS_INSUFFICIENT_RESOURCES Der Sicherheitsdeskriptor des Objekts konnte nicht erfasst werden. Dies ist ein Fehlercode.
STATUS_INVALID_ACL Der Sicherheitsdeskriptor des Objekts enthielt eine ungültige ACL. Dies ist ein Fehlercode.
STATUS_INVALID_SECURITY_DESCR SecurityDescriptor nicht auf einen gültigen Sicherheitsdeskriptor verweisen. Dies ist ein Fehlercode.
STATUS_INVALID_SID Der Sicherheitsdeskriptor des Objekts enthielt eine ungültige SID. Dies ist ein Fehlercode.
STATUS_UNKNOWN_REVISION Die Revisionsebene des Sicherheitsdeskriptors des Objekts wurde unbekannt oder nicht unterstützt. Dies ist ein Fehlercode.
STATUS_NOT_IMPLEMENTED Die FltSetSecurityObject Routine ist vorhanden, wird jedoch in der Betriebssystemumgebung, in der sie aufgerufen wurde, nicht unterstützt.

Bemerkungen

Die FltSetSecurityObject Routine ist vorhanden und wird ab Windows Vista unterstützt. In Windows 2000, Windows XP und Server 2003 SP1 ist die Routine vorhanden, aber nicht unterstützt und gibt STATUS_NOT_IMPLEMENTED zurück, wenn sie in einer dieser Umgebungen aufgerufen wird.

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 in der Dokumentation zu diesen Themen im Windows SDK.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- fltkernel.h (include Fltkernel.h)
Library FltMgr.lib
DLL- Fltmgr.sys
IRQL- PASSIVE_LEVEL

Siehe auch

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

ZwQuerySecurityObject

ZwSetSecurityObject

FltQuerySecurityObject-