Funzione NtOpenProcess (ntddk.h)
La routine ZwOpenProcess apre un handle a un oggetto process e imposta i diritti di accesso a questo oggetto.
Sintassi
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcess(
[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 del processo nella variabile a cui punta questo parametro.
[in] DesiredAccess
Valore ACCESS_MASK contenente 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 seguenti.
[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 altre informazioni, vedere la sezione Osservazioni seguenti.
Valore restituito
ZwOpenProcess restituisce STATUS_SUCCESS se la chiamata ha esito positivo. I valori restituiti possibili includono i codici di stato degli errori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_INVALID_PARAMETER_MIX | Il chiamante ha fornito un nome dell'oggetto o non è riuscito a specificare 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
Come accade con i gestori del kernel aperti da altre chiamate di servizio di sistema, ad esempio ZwCreateKey e ZwCreateFile, il chiamante è responsabile della chiamata di ZwClose per chiudere l'handle quando non è più necessario.
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 si verifica in modalità utente, è necessario usare il nome "NtOpenProcess" anziché "ZwOpenProcess".
Per le chiamate dai driver in modalità kernel, le versioni NtXxx e ZwXxx 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 Uso di nt e zw versioni delle routine di Servizi di sistema nativo.
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, PowerIrpDDis |
Vedi anche
Uso di nt e zw versioni delle routine di Servizi di sistema nativo