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 altre informazioni, vedere la sezione Osservazioni seguente.
[in, optional] ClientId
Puntatore a un ID client che identifica il thread il cui processo deve essere aperto. Questo parametro deve essere un puntatore nullnull a un ID client valido. Per altre informazioni, vedere la sezione Osservazioni seguente.
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. |
Osservazioni
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 NtXxx e ZwXxx versioni di una routine di Windows Native System Services 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.
Fabbisogno
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) |
Vedere anche
uso di versioni Nt e Zw delle routine di Servizi di sistema nativi