Función NtOpenEnlistment (wdm.h)
La rutina ZwOpenEnlistment obtiene un identificador para un objeto de inscripción existente.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenEnlistment(
[out] PHANDLE EnlistmentHandle,
[in] ACCESS_MASK DesiredAccess,
[in] HANDLE ResourceManagerHandle,
[in] LPGUID EnlistmentGuid,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);
Parámetros
[out] EnlistmentHandle
Puntero a una variable asignada por el autor de la llamada que recibe un identificador a un objeto de inscripción si la llamada a ZwOpenEnlistment se realiza correctamente.
[in] DesiredAccess
Valor con tipo ACCESS_MASK que especifica el acceso solicitado al objeto de inscripción. Para obtener más información sobre cómo especificar este parámetro, vea el parámetro DesiredAccess de ZwCreateEnlistment. Este parámetro no puede ser cero.
[in] ResourceManagerHandle
Identificador de un objeto de administrador de recursos obtenido por una llamada anterior a ZwCreateResourceManager o ZwOpenResourceManager.
[in] EnlistmentGuid
Puntero a un GUID que identifica la inscripción. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
[in, optional] ObjectAttributes
Puntero a una estructura OBJECT_ATTRIBUTES que especifica los atributos del objeto. Use la rutina InitializeObjectAttributes para inicializar esta estructura, pero especifique solo los parámetros InitializedAttributes y Attributes de la rutina. Si el autor de la llamada no se ejecuta en un contexto de subproceso del sistema, debe establecer la marca OBJ_KERNEL_HANDLE en el parámetro Attributes . Este parámetro es opcional y puede ser NULL.
Valor devuelto
ZwOpenEnlistment 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 de objeto no es válido. |
|
El autor de la llamada no tiene el acceso adecuado al objeto de inscripción. |
|
El valor del parámetro DesiredAccess es cero o el valor del parámetro EnlistmentGuid es NULL. |
|
La inscripción que especifica el parámetro EnlistmentGuid no existe para el administrador de recursos que especifica el parámetro RmHandle . |
|
El valor del parámetro DesiredAccess no es válido. |
La rutina podría devolver otros valores NTSTATUS.
Comentarios
Normalmente, un componente de TPS llama a ZwOpenEnlistment después de recibir un GUID de inscripción de otro componente de TPS que anteriormente había llamado ZwCreateEnlistment. La mayoría de los diseños tpS no requieren llamar a ZwOpenEnlistment.
Un administrador de recursos que llama a ZwOpenEnlistment debe llamar finalmente a ZwClose para cerrar el identificador del objeto.
Para obtener más información sobre ZwOpenEnlistment, vea Objetos de inscripción.
NtOpenEnlistment y ZwOpenEnlistment son dos versiones de la misma rutina de Servicios del sistema nativo de Windows.
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, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
Uso de las versiones Nt y Zw de las rutinas nativas de Servicios del sistema