Compartir a través de


Función NtCreateResourceManager (wdm.h)

La rutina ZwCreateResourceManager crea un objeto de administrador de recursos.

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 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] 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 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
STATUS_OBJECT_TYPE_MISMATCH
El identificador que tmHandle especifica no es un identificador para un objeto de transacción.
STATUS_INVALID_HANDLE
El identificador que tmHandle especifica no es válido.
STATUS_ACCESS_DENIED
El autor de la llamada no tiene el acceso adecuado al objeto de administrador de transacciones especificado.
STATUS_TRANSACTION_OBJECT_EXPIRED
El identificador que tmHandle especifica está cerrado.
STATUS_INVALID_PARAMETER
El valor del parámetro CreateOptions no es válido o la cadena del parámetro Description es demasiado larga.
STATUS_TM_VOLATILE
El parámetro CreateOptions no especifica RESOURCE_MANAGER_VOLATILE, pero el administrador de transacciones que TmHandle especifica es volátil.
STATUS_OBJECT_NAME_COLLISION
El GUID que ResourceManagerGuid especifica ya existe.
STATUS_ACCESS_DENIED
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, PowerIrpDDis

Consulte también

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager