Freigeben über


SeSetSecurityDescriptorInfo-Funktion (ntifs.h)

Die SeSetSecurityDescriptorInfo-Routine legt die Sicherheitsbeschreibung eines Objekts fest.

Syntax

NTSTATUS SeSetSecurityDescriptorInfo(
  [in, optional] PVOID                 Object,
  [in]           PSECURITY_INFORMATION SecurityInformation,
                 PSECURITY_DESCRIPTOR  ModificationDescriptor,
  [in, out]      PSECURITY_DESCRIPTOR  *ObjectsSecurityDescriptor,
  [in]           POOL_TYPE             PoolType,
  [in]           PGENERIC_MAPPING      GenericMapping
);

Parameter

[in, optional] Object

Zeiger auf das Objekt, dessen Sicherheitsdeskriptor festgelegt werden soll. Dies wird verwendet, um Sicherheitskontingentinformationen zu aktualisieren.

[in] SecurityInformation

Zeiger auf eine Bitmaske, die angibt, welche Sicherheitsinformationen auf das Objekt angewendet werden sollen. Kann eine Kombination aus mindestens einem der folgenden Werte sein.

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

ModificationDescriptor

Die Eingabesicherheitsbeschreibung, die auf das Objekt angewendet werden soll. Es wird erwartet, dass der Aufrufer dieser Routine den übergebenen Sicherheitsdeskriptor vor dem Aufrufen von SeSetSecurityDescriptorInfo testet und erfasst und anschließend freigibt.

[in, out] ObjectsSecurityDescriptor

Zeiger auf einen Zeiger auf die Sicherheitsbeschreibung des Objekts. Die Sicherheitsbeschreibung muss im selbstrelativen Format vorliegen. Der Aufrufer ist für die Freigabe dieser Struktur verantwortlich, wenn sie nicht mehr benötigt wird.

[in] PoolType

Gibt den Pooltyp an, der beim Zuweisen eines neuen Sicherheitsdeskriptors verwendet werden soll, der eine der folgenden Sein kann:

  • NonPagedPool
  • PagedPool
  • NonPagedPoolCacheAligned
  • PagedPoolCacheAligned

Normalerweise gibt ein Aufrufer PagedPool oder NonPagedPool an, wenn auf den Puffer unter IRQL >= DISPATCH_LEVEL oder in einem beliebigen Threadkontext zugegriffen wird.

Die Pooltypen NonPagedPoolMustSucceed und NonPagedPoolCacheAlignedMustS sind veraltet und sollten nicht mehr verwendet werden.

[in] GenericMapping

Zeiger auf eine GENERIC_MAPPING-Struktur, die die Zuordnung von generischen zugriffsspezifischen und Standardzugriffstypen für das Objekt angibt, auf das zugegriffen wird. Es wird erwartet, dass der Zugriff auf diese Zuordnungsstruktur sicher ist (d. h. bei Bedarf erfasst), bevor sie an diese Routine übergeben wird.

Rückgabewert

Rückgabecode Beschreibung
STATUS_SUCCESS Die Sicherheitsbeschreibung des Objekts wurde erfolgreich geändert.
STATUS_BAD_DESCRIPTOR_FORMAT Die Sicherheitsbeschreibung des bereitgestellten Objekts war nicht im selbstrelativen Format.
STATUS_NO_SECURITY_ON_OBJECT Das Objekt verfügt nicht über einen Sicherheitsdeskriptor.

Hinweise

SeSetSecurityDescriptorInfo ändert die vorhandene Sicherheitsbeschreibung eines Objekts. Wenn das Objekt keinen Sicherheitsdeskriptor aufweist, schlägt der Aufruf von SeSetSecurityDescriptorInfo fehl.

Verwenden Sie SeSetSecurityDescriptorInfoEx, um anzugeben, ob das Objekt die automatische Vererbung von Zugriffssteuerungseinträgen (ACE) unterstützt.

Eine Sicherheitsbeschreibung kann in absoluter oder selbstrelativer Form vorliegen. In selbstrelativer Form befinden sich alle Elemente der Struktur zusammenhängend im Arbeitsspeicher. In absoluter Form enthält die Struktur nur Zeiger auf die Member.

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

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Weitere Informationen

ASS

ACL

GENERIC_MAPPING

RtlCreateSecurityDescriptor

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor

RtlSetDaclSecurityDescriptor

RtlSetOwnerSecurityDescriptor

RtlValidSecurityDescriptor

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx