Condividi tramite


Funzione ZwOpenProcess (ntddk.h)

La routine ZwOpenProcess apre un handle a un oggetto processo e imposta i diritti di accesso a questo oggetto.

Sintassi

NTSYSAPI NTSTATUS ZwOpenProcess(
  [out]          PHANDLE            ProcessHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PCLIENT_ID         ClientId
);

Parametri

[out] ProcessHandle

Puntatore a una variabile di tipo HANDLE. La routine ZwOpenProcess scrive l'handle di processo nella variabile a cui punta questo parametro.

[in] DesiredAccess

Valore ACCESS_MASK che contiene i diritti di accesso richiesti dal chiamante all'oggetto processo.

[in] ObjectAttributes

Puntatore a una struttura OBJECT_ATTRIBUTES che specifica gli attributi da applicare all'handle dell'oggetto processo. Il campo ObjectName di questa struttura deve essere impostato su NULL. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

[in, optional] ClientId

Puntatore a un ID client che identifica il thread il cui processo deve essere aperto. Questo parametro deve essere un puntatore non NULL a un ID client valido. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.

Valore restituito

ZwOpenProcess restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I valori restituiti possibili includono i codici di stato di errore seguenti.

Codice restituito Descrizione
STATUS_INVALID_PARAMETER_MIX Il chiamante ha fornito un nome di oggetto o non è riuscito a fornire un ID client.
STATUS_INVALID_CID L'ID client specificato non è valido.
STATUS_INVALID_PARAMETER I diritti di accesso richiesti non sono validi per un oggetto processo.
STATUS_ACCESS_DENIED Non è possibile concedere i diritti di accesso richiesti.

Commenti

Il parametro ClientId deve puntare a un ID client che identifica il thread il cui processo deve essere aperto. Inoltre, il campo ObjectName della struttura a cui punta ObjectAttributes deve essere impostato su NULL.

Se la chiamata a questa funzione viene eseguita in modalità utente, è necessario usare il nome "NtOpenProcess" anziché "ZwOpenProcess".

Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

ACCESS_MASK

OBJECT_ATTRIBUTES

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema