Freigeben über


NtCreateResourceManager-Funktion (wdm.h)

Die ZwCreateResourceManager Routine erstellt ein Ressourcen-Manager-Objekt.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtCreateResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             RmGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] ULONG              CreateOptions,
  [in, optional] PUNICODE_STRING    Description
);

Parameter

[out] ResourceManagerHandle

Ein Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein Handle für das neue Ressourcen-Manager-Objekt empfängt, wenn der Aufruf von ZwCreateResourceManager erfolgreich ist.

[in] DesiredAccess

Ein ACCESS_MASK Wert, der den angeforderten Zugriff des Aufrufers auf das Ressourcen-Manager-Objekt angibt. Zusätzlich zu den Zugriffsrechten, die für alle Arten von Objekten definiert sind (siehe ACCESS_MASK), kann der Aufrufer jedes der folgenden Zugriffsrechten für Ressourcen-Manager-Objekte angeben:

ACCESS_MASK-Kennzeichnung Ermöglicht es dem Aufrufer,
RESOURCEMANAGER_ENLIST Enlist in Transaktionen (siehe ZwCreateEnlistment).
RESOURCEMANAGER_GET_NOTIFICATION Erhalten Sie Benachrichtigungen über die Transaktionen, die diesem Ressourcen-Manager zugeordnet sind (siehe ZwGetNotificationResourceManager).
RESOURCEMANAGER_REGISTER_PROTOCOL Wird nicht verwendet.
RESOURCEMANAGER_QUERY_INFORMATION Abfrageinformationen zum Ressourcen-Manager (siehe ZwQueryInformationResourceManager).
RESOURCEMANAGER_SET_INFORMATION Wird nicht verwendet.
RESOURCEMANAGER_RECOVER Wiederherstellen des Ressourcen-Managers (siehe ZwRecoverResourceManager).
RESOURCEMANAGER_COMPLETE_PROPAGATION Wird nicht verwendet.
 

Alternativ können Sie ein oder mehrere der folgenden generischen ACCESS_MASK Flags angeben. (Die STANDARD_RIGHTS_Xxx- Flags sind vordefinierte Systemwerte, die zum Erzwingen der Sicherheit auf Systemobjekten verwendet werden.) Sie können diese generischen Flags auch mit zusätzlichen Flags aus der vorherigen Tabelle kombinieren. In der folgenden Tabelle wird gezeigt, wie generische Zugriffsrechte bestimmten Zugriffsrechten entsprechen.

Generisches Zugriffsrecht Festlegen bestimmter Zugriffsrechte
RESOURCEMANAGER_GENERIC_READ STANDARD_RIGHTS_READ, RESOURCEMANAGER_QUERY_INFORMATION und SYNCHRONISIEREN
RESOURCEMANAGER_GENERIC_WRITE STANDARD_RIGHTS_WRITE, RESOURCEMANAGER_SET_INFORMATION, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_REGISTER_PROTOCOL, RESOURCEMANAGER_COMPLETE_PROPAGATION und SYNCHRONISIEREN
RESOURCEMANAGER_GENERIC_EXECUTE STANDARD_RIGHTS_EXECUTE, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_COMPLETE_PROPAGATION und SYNCHRONISIEREN
RESOURCEMANAGER_ALL_ACCESS STANDARD_RIGHTS_REQUIRED, RESOURCEMANAGER_GENERIC_READ, RESOURCEMANAGER_GENERIC_WRITE und RESOURCEMANAGER_GENERIC_EXECUTE

[in] TmHandle

Ein Handle für ein Transaktions-Manager-Objekt, das von einem vorherigen ZwCreateTransactionManager oder ZwOpenTransactionManagerabgerufen wurde.

[in] RmGuid

Ein Zeiger auf eine GUID, die KTM verwendet, um den Ressourcen-Manager zu identifizieren. Wenn dieser Zeiger NULL-ist, generiert KTM eine GUID.

[in, optional] ObjectAttributes

Ein Zeiger auf eine OBJECT_ATTRIBUTES Struktur, die den Objektnamen und andere Attribute angibt. Verwenden Sie die InitializeObjectAttributes Routine, um diese Struktur zu initialisieren. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss das attribut OBJ_KERNEL_HANDLE festgelegt werden, wenn er InitializeObjectAttributesaufruft. Dieser Parameter ist optional und kann NULL-werden.

[in, optional] CreateOptions

Optionale Objekterstellungskennzeichnungen. Die folgende Tabelle enthält die verfügbaren Flags, die in Ktmtypes.h definiert sind.

Flag "CreateOptions" Bedeutung
RESOURCE_MANAGER_COMMUNICATION Nur für die interne Verwendung.
RESOURCE_MANAGER_VOLATILE Der Aufrufer verwaltet veränderliche Ressourcen. Es ist nicht persistent und führt keine Wiederherstellung durch.
 

Dieser Parameter ist optional und kann null sein.

[in, optional] Description

Ein Zeiger auf eine vom Aufrufer bereitgestellte UNICODE_STRING Struktur, die eine MIT NULL beendete Zeichenfolge enthält. Die Zeichenfolge enthält eine Beschreibung des Ressourcen-Managers. KTM speichert eine Kopie der Zeichenfolge und enthält die Zeichenfolge in Nachrichten, die sie in den Protokolldatenstrom schreibt. Die maximale Zeichenfolgenlänge ist MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Dieser Parameter ist optional und kann NULL-werden.

Rückgabewert

ZwCreateResourceManager gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Routine möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_OBJECT_TYPE_MISMATCH
Das Handle, das TmHandle- angibt, ist kein Handle für ein Transaktionsobjekt.
STATUS_INVALID_HANDLE
Das Handle, das TmHandle- angibt, ist ungültig.
STATUS_ACCESS_DENIED
Der Aufrufer hat keinen geeigneten Zugriff auf das angegebene Transaktions-Manager-Objekt.
STATUS_TRANSACTION_OBJECT_EXPIRED
Das Handle, das TmHandle- angibt, ist geschlossen.
STATUS_INVALID_PARAMETER
Der Wert des CreateOptions-Parameters ist ungültig, oder die Description-Parameterzeichenfolge ist zu lang.
STATUS_TM_VOLATILE
Der parameter CreateOptions gibt nicht RESOURCE_MANAGER_VOLATILE an, aber der Transaktions-Manager, der TmHandle- angibt, ist veränderlich.
STATUS_OBJECT_NAME_COLLISION
Die GUID, die ResourceManagerGuid angibt, ist bereits vorhanden.
STATUS_ACCESS_DENIED
Der Wert des parameters DesiredAccess ist ungültig.
 

Die Routine gibt möglicherweise andere NTSTATUS-Wertezurück.

Bemerkungen

Ein Ressourcenmanager, der ZwCreateResourceManager aufruft muss schließlich ZwClose- aufrufen, um das Objekthandle zu schließen.

Weitere Informationen zu ZwCreateResourceManagerfinden Sie unter Creating a Resource Manager.

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- Verfügbar in Windows Vista und höheren Betriebssystemversionen.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Siehe auch

ACCESS_MASK

InitializeObjectAttributes-

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager