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