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
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema