Función ZwCreateResourceManager (wdm.h)
La rutina ZwCreateResourceManager crea un objeto de administrador de recursos.
Sintaxis
NTSYSCALLAPI NTSTATUS ZwCreateResourceManager(
[out] PHANDLE ResourceManagerHandle,
[in] ACCESS_MASK DesiredAccess,
[in] HANDLE TmHandle,
[in, optional] LPGUID ResourceManagerGuid,
[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 al nuevo objeto del administrador de recursos 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 del administrador de recursos. Además de los derechos de acceso definidos para todo tipo de objetos (consulte ACCESS_MASK), el autor de la llamada puede especificar cualquiera de las siguientes marcas de derecho de acceso 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 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 se corresponden los derechos de acceso genéricos con 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 obtenido por un elemento anterior a ZwCreateTransactionManager o ZwOpenTransactionManager.
[in, optional] ResourceManagerGuid
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 de OBJECT_ATTRIBUTES que especifica el nombre del objeto y otros atributos. Use la rutina 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 puede ser 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 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 la secuencia de registro. La longitud máxima de la cadena es MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH. Este parámetro es opcional y puede ser 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 de 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 ya existe. |
|
El valor del parámetro DesiredAccess no es válido. |
La rutina podría devolver otros valores NTSTATUS.
Comentarios
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 versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar 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 NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores del sistema operativo. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |
Consulte también
ZwGetNotificationResourceManager