Función NtCreateResourceManager (wdm.h)
La rutina ZwCreateResourceManager crea un objeto resource Manager.
Sintaxis
__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
);
Parámetros
[out] ResourceManagerHandle
Puntero a una variable asignada por el autor de la llamada que recibe un identificador del nuevo objeto de Resource Manager si la llamada a ZwCreateResourceManager se realiza correctamente.
[in] DesiredAccess
Valor de ACCESS_MASK que especifica el acceso solicitado del autor de la llamada al objeto de Resource Manager. Además de los derechos de acceso definidos para todos los tipos de objetos (vea ACCESS_MASK), el autor de la llamada puede especificar cualquiera de las siguientes marcas de acceso adecuadas para objetos de Resource Manager:
marca de ACCESS_MASK | Permite al autor de la llamada |
---|---|
RESOURCEMANAGER_ENLIST | Inscribirse en transacciones (consulte ZwCreateEnlistment). |
RESOURCEMANAGER_GET_NOTIFICATION | Reciba notificaciones sobre las transacciones asociadas a este administrador de recursos (consulte ZwGetNotificationResourceManager). |
RESOURCEMANAGER_REGISTER_PROTOCOL | No se usa. |
RESOURCEMANAGER_QUERY_INFORMATION | Consulte información sobre el administrador de recursos (consulte ZwQueryInformationResourceManager). |
RESOURCEMANAGER_SET_INFORMATION | No se usa. |
RESOURCEMANAGER_RECOVER | Recupere el administrador de recursos (consulte ZwRecoverResourceManager). |
RESOURCEMANAGER_COMPLETE_PROPAGATION | No se usa. |
Como alternativa, puede especificar una o varias de las marcas de ACCESS_MASK genéricas siguientes. (Las marcas de STANDARD_RIGHTS_Xxx son valores del sistema predefinidos que se usan para aplicar la seguridad en los objetos del sistema). También puede combinar estas marcas genéricas con marcas adicionales de la tabla anterior. En la tabla siguiente se muestra cómo los derechos de acceso genéricos corresponden a derechos de acceso específicos.
Derecho de acceso genérico | Conjunto de derechos de acceso específicos |
---|---|
RESOURCEMANAGER_GENERIC_READ | STANDARD_RIGHTS_READ, RESOURCEMANAGER_QUERY_INFORMATION y SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_WRITE | STANDARD_RIGHTS_WRITE, RESOURCEMANAGER_SET_INFORMATION, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_REGISTER_PROTOCOL, RESOURCEMANAGER_COMPLETE_PROPAGATION y SYNCHRONIZE |
RESOURCEMANAGER_GENERIC_EXECUTE | STANDARD_RIGHTS_EXECUTE, RESOURCEMANAGER_RECOVER, RESOURCEMANAGER_ENLIST, RESOURCEMANAGER_GET_NOTIFICATION, RESOURCEMANAGER_COMPLETE_PROPAGATION y SYNCHRONIZE |
RESOURCEMANAGER_ALL_ACCESS | STANDARD_RIGHTS_REQUIRED, RESOURCEMANAGER_GENERIC_READ, RESOURCEMANAGER_GENERIC_WRITE y RESOURCEMANAGER_GENERIC_EXECUTE |
[in] TmHandle
Identificador de un objeto de administrador de transacciones de obtenido por un ZwCreateTransactionManager o ZwOpenTransactionManager.
[in] RmGuid
Puntero a un GUID que KTM usará para identificar el administrador de recursos. Si este puntero es NULL, KTM genera un GUID.
[in, optional] ObjectAttributes
Puntero a una estructura OBJECT_ATTRIBUTES que especifica el nombre del objeto y otros atributos. Use la rutina de InitializeObjectAttributes para inicializar esta estructura. Si el autor de la llamada no se ejecuta en un contexto de subproceso del sistema, debe establecer el atributo OBJ_KERNEL_HANDLE cuando llama a InitializeObjectAttributes. Este parámetro es opcional y se puede NULL.
[in, optional] CreateOptions
Marcas de creación de objetos opcionales. La tabla siguiente contiene las marcas disponibles, que se definen en Ktmtypes.h.
Marca de CreateOptions | Significado |
---|---|
RESOURCE_MANAGER_COMMUNICATION | Solo para uso interno. |
RESOURCE_MANAGER_VOLATILE | El autor de la llamada administrará los recursos volátiles. Será no persistente y no realizará la recuperación. |
Este parámetro es opcional y puede ser cero.
[in, optional] Description
Puntero a una estructura de UNICODE_STRING proporcionada por el autor de la llamada que contiene una cadena terminada en NULL. La cadena proporciona una descripción del administrador de recursos. KTM almacena una copia de la cadena e incluye la cadena en los mensajes que escribe en el flujo de registro. La longitud máxima de la cadena es MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Este parámetro es opcional y se puede NULL.
Valor devuelto
ZwCreateResourceManager devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, esta rutina podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
El identificador que tmHandle especifica no es un identificador para un objeto de transacción. |
|
El identificador que tmHandle especifica no es válido. |
|
El autor de la llamada no tiene el acceso adecuado al objeto del administrador de transacciones especificado. |
|
El identificador que tmHandle especifica está cerrado. |
|
El valor del parámetro CreateOptions no es válido o la cadena del parámetro Description es demasiado larga. |
|
El parámetro CreateOptions no especifica RESOURCE_MANAGER_VOLATILE, pero el administrador de transacciones que tmHandle especifica es volátil. |
|
El GUID que ResourceManagerGuid especifica que ya existe. |
|
El valor del parámetro DesiredAccess no es válido. |
La rutina puede devolver otros valores NTSTATUS de .
Observaciones
Un administrador de recursos que llama a ZwCreateResourceManager debe llamar finalmente a ZwClose para cerrar el identificador del objeto.
Para obtener más información sobre ZwCreateResourceManager, vea Creating a Resource Manager.
En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores del sistema operativo. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
ZwGetNotificationResourceManager