Función NtOpenProcess (ntddk.h)
La rutina ZwOpenProcess abre un identificador para un objeto de proceso y establece los derechos de acceso a este objeto.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcess(
[out] PHANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PCLIENT_ID ClientId
);
Parámetros
[out] ProcessHandle
Puntero a una variable de tipo HANDLE. La rutina ZwOpenProcess escribe el identificador de proceso en la variable a la que apunta este parámetro.
[in] DesiredAccess
Valor de ACCESS_MASK que contiene los derechos de acceso que el autor de la llamada ha solicitado al objeto de proceso.
[in] ObjectAttributes
Puntero a una estructura OBJECT_ATTRIBUTES que especifica los atributos que se van a aplicar al identificador de objeto de proceso. El campo ObjectName de de esta estructura debe establecerse en NULL. Para obtener más información, consulte la siguiente sección Comentarios.
[in, optional] ClientId
Puntero a un identificador de cliente que identifica el subproceso cuyo proceso se va a abrir. Este parámetro debe ser un puntero noNULL a un identificador de cliente válido. Para obtener más información, consulte la siguiente sección Comentarios.
Valor devuelto
ZwOpenProcess devuelve STATUS_SUCCESS si la llamada se realiza correctamente. Los valores devueltos posibles incluyen los siguientes códigos de estado de error:
Código devuelto | Descripción |
---|---|
STATUS_INVALID_PARAMETER_MIX | El autor de la llamada proporcionó un nombre de objeto o no pudo proporcionar un identificador de cliente. |
STATUS_INVALID_CID | El identificador de cliente especificado no es válido. |
STATUS_INVALID_PARAMETER | Los derechos de acceso solicitados no son válidos para un objeto de proceso. |
STATUS_ACCESS_DENIED | No se pueden conceder los derechos de acceso solicitados. |
Observaciones
Como sucede con los identificadores de kernel abiertos por otras llamadas de servicio del sistema, como ZwCreateKey y ZwCreateFile, el autor de la llamada es responsable de llamar a ZwClose cerrar el identificador cuando ya no sea necesario.
El parámetro ClientId debe apuntar a un identificador de cliente que identifique el subproceso cuyo proceso se va a abrir. Además, el campo ObjectName de la estructura a la que apunta ObjectAttributes debe establecerse en NULL.
Si la llamada a esta función se produce en modo de usuario, debe usar el nombre "NtOpenProcess" en lugar de "ZwOpenProcess".
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 |
---|---|
de la plataforma de destino de | Universal |
encabezado de | ntddk.h (incluya 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
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo