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 |
---|---|
|
Das Handle, das TmHandle- angibt, ist kein Handle für ein Transaktionsobjekt. |
|
Das Handle, das TmHandle- angibt, ist ungültig. |
|
Der Aufrufer hat keinen geeigneten Zugriff auf das angegebene Transaktions-Manager-Objekt. |
|
Das Handle, das TmHandle- angibt, ist geschlossen. |
|
Der Wert des CreateOptions-Parameters ist ungültig, oder die Description-Parameterzeichenfolge ist zu lang. |
|
Der parameter CreateOptions gibt nicht RESOURCE_MANAGER_VOLATILE an, aber der Transaktions-Manager, der TmHandle- angibt, ist veränderlich. |
|
Die GUID, die ResourceManagerGuid angibt, ist bereits vorhanden. |
|
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
ZwGetNotificationResourceManager