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 vom Aufrufer angeforderten Zugriff auf das Resource Manager-Objekt angibt. Zusätzlich zu den Zugriffsrechten, die für alle Arten von Objekten definiert sind (siehe ACCESS_MASK), kann der Aufrufer eines der folgenden Zugriffsberechtigungsflags für Resource Manager-Objekte angeben:

ACCESS_MASK Flag Ermöglicht dem Aufrufer die
RESOURCEMANAGER_ENLIST In Transaktionen eintragen (siehe ZwCreateEnlistment).
RESOURCEMANAGER_GET_NOTIFICATION Erhalten Sie Benachrichtigungen zu den Transaktionen, die diesem Ressourcen-Manager zugeordnet sind (siehe ZwGetNotificationResourceManager).
RESOURCEMANAGER_REGISTER_PROTOCOL Wird nicht verwendet.
RESOURCEMANAGER_QUERY_INFORMATION Abfragen von Informationen zum Ressourcen-Manager (siehe ZwQueryInformationResourceManager).
RESOURCEMANAGER_SET_INFORMATION Wird nicht verwendet.
RESOURCEMANAGER_RECOVER Stellen Sie den Ressourcen-Manager wieder her (siehe ZwRecoverResourceManager).
RESOURCEMANAGER_COMPLETE_PROPAGATION Wird nicht verwendet.
 

Alternativ können Sie mindestens eins der folgenden generischen ACCESS_MASK-Flags angeben. (Die STANDARD_RIGHTS_Xxx-Flags sind vordefinierte Systemwerte, die zum Erzwingen der Sicherheit von Systemobjekten verwendet werden.) Sie können diese generischen Flags auch mit zusätzlichen Flags aus der vorherigen Tabelle kombinieren. Die folgende Tabelle zeigt, wie generische Zugriffsrechte bestimmten Zugriffsrechten entsprechen.

Generisches Zugriffsrecht Satz 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 SYNCHRONIZE
RESOURCEMANAGER_GENERIC_EXECUTE STANDARD_RIGHTS_EXECUTE, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_COMPLETE_PROPAGATION und SYNCHRONIZE
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 All zu ZwCreateTransactionManager oder ZwOpenTransactionManager abgerufen 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 er das attribut OBJ_KERNEL_HANDLE festlegen, wenn initializeObjectAttributes aufgerufen wird. Dieser Parameter ist optional und kann NULL sein.

[in, optional] CreateOptions

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

CreateOptions-Flag Bedeutung
RESOURCE_MANAGER_COMMUNICATION Nur zur internen Verwendung.
RESOURCE_MANAGER_VOLATILE Der Aufrufer verwaltet flüchtige Ressourcen. Es ist nicht persistent und führt keine Wiederherstellung aus.
 

Dieser Parameter ist optional und kann null sein.

[in, optional] Description

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

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 von TmHandle festgelegte Handle ist kein Handle für ein Transaktionsobjekt.
STATUS_INVALID_HANDLE
Das von TmHandle festgelegte Handle ist ungültig.
STATUS_ACCESS_DENIED
Der Aufrufer hat keinen entsprechenden Zugriff auf das angegebene Transaktions-Manager-Objekt.
STATUS_TRANSACTION_OBJECT_EXPIRED
Der von TmHandle festgelegte Handle ist geschlossen.
STATUS_INVALID_PARAMETER
Der Wert des CreateOptions-Parameters ist ungültig, oder die Zeichenfolge des Description-Parameters ist zu lang.
STATUS_TM_VOLATILE
Der CreateOptions-Parameter gibt nicht RESOURCE_MANAGER_VOLATILE aber der von TmHandle angegebene Transaktions-Manager ist volatil.
STATUS_OBJECT_NAME_COLLISION
Die GUID, die ResourceManagerGuid angibt, ist bereits vorhanden.
STATUS_ACCESS_DENIED
Der Wert des DesiredAccess-Parameters ist ungültig.
 

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

Hinweise

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

Weitere Informationen zu ZwCreateResourceManager finden Sie unter Erstellen einer Resource Manager.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, da sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und höheren Betriebssystemversionen.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Weitere Informationen

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager