Compartir a través de


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
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 del 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 que ya existe.
STATUS_ACCESS_DENIED
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

ACCESS_MASK

initializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ZwClose

ZwCreateEnlistment

ZwCreateTransactionManager

ZwGetNotificationResourceManager

ZwOpenResourceManager

ZwOpenTransactionManager

ZwQueryInformationResourceManager

ZwRecoverResourceManager