Freigeben über


SeSetSecurityDescriptorInfo-Funktion (ntifs.h)

Die SeSetSecurityDescriptorInfo Routine legt den Sicherheitsdeskriptor 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

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

[in] SecurityInformation

Zeigen Sie auf eine Bitmaske, die angibt, welche Sicherheitsinformationen auf das Objekt angewendet werden sollen. Dies kann eine Kombination aus einem oder mehreren 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 den Besitzerbezeichner des Objekts an, das 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

Der Eingabesicherheitsdeskriptor, der auf das Objekt angewendet werden soll. Der Aufrufer dieser Routine wird erwartet, dass der übergebene Sicherheitsdeskriptor überprüft und erfasst wird, bevor SeSetSecurityDescriptorInfoaufgerufen und anschließend freigegeben wird.

[in, out] ObjectsSecurityDescriptor

Zeigen Sie auf einen Zeiger auf den Sicherheitsdeskriptor des Objekts. Der Sicherheitsdeskriptor muss im selbstrelativen Format vorliegen. Der Aufrufer ist dafür verantwortlich, diese Struktur frei zu geben, wenn sie nicht mehr benötigt wird.

[in] PoolType

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

  • NonPagedPool-
  • PagedPool-
  • NonPagedPoolCacheAligned-
  • PagedPoolCacheAligned-

In der Regel gibt ein Aufrufer PagedPool-an oder NonPagedPool-, wenn auf den Puffer bei IRQL >= DISPATCH_LEVEL oder in einem beliebigen Threadkontext zugegriffen wird.

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

[in] GenericMapping

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

Rückgabewert

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

Bemerkungen

SeSetSecurityDescriptorInfo ändert die vorhandene Sicherheitsbeschreibung eines Objekts. Wenn das Objekt nicht über einen Sicherheitsdeskriptor verfügt, schlägt der Aufruf von SeSetSecurityDescriptorInfo fehl.

Um anzugeben, ob das Objekt die automatische Vererbung von Zugriffssteuerungseinträgen (Access Control Entries, ACE) unterstützt, verwenden Sie SeSetSecurityDescriptorInfoEx.

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 zur Sicherheits- und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und die Dokumentation zu diesen Themen im Windows SDK.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL

Siehe auch

ACE-

ACL-

GENERIC_MAPPING

RtlCreateSecurityDescriptor-

RtlCreateSecurityDescriptorRelative

RtlLengthSecurityDescriptor-

RtlSetDaclSecurityDescriptor-

RtlSetOwnerSecurityDescriptor-

RtlValidSecurityDescriptor-

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SeQuerySecurityDescriptorInfo

SeSetAccessStateGenericMapping

SeSetSecurityDescriptorInfoEx