Funzione CreateJobObjectA (winbase.h)
Crea o apre un oggetto processo.
Sintassi
HANDLE CreateJobObjectA(
[in, optional] LPSECURITY_ATTRIBUTES lpJobAttributes,
[in, optional] LPCSTR lpName
);
Parametri
[in, optional] lpJobAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES che specifica il descrittore di sicurezza per l'oggetto processo e determina se i processi figlio possono ereditare l'handle restituito. Se lpJobAttributes è NULL, l'oggetto processo ottiene un descrittore di sicurezza predefinito e l'handle non può essere ereditato. Gli ACL nel descrittore di sicurezza predefinito per un oggetto processo provengono dal token primario o di rappresentazione dell'autore.
[in, optional] lpName
Nome del processo. Il nome è limitato ai caratteri MAX_PATH. Il confronto tra nomi fa distinzione tra maiuscole e minuscole.
Se lpName è null, il processo viene creato senza un nome.
Se lpName corrisponde al nome di un evento esistente, semaforo, mutex, timer waitable o oggetto di mapping di file, la funzione ha esito negativo e la funzione GetLastError restituisce ERROR_INVALID_HANDLE. Ciò si verifica perché questi oggetti condividono lo stesso spazio dei nomi.
L'oggetto può essere creato in uno spazio dei nomi privato. Per altre informazioni, vedere spazi dei nomi degli oggetti .
Servizi terminal: Il nome può avere un prefisso "Global" o "Local" per creare in modo esplicito l'oggetto nello spazio dei nomi globale o sessione. Il resto del nome può contenere qualsiasi carattere, ad eccezione del carattere barra rovesciata (\). Per altre informazioni, vedere spazi dei nomi dell'oggetto kernel .
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle per l'oggetto processo. L'handle ha il diritto di accesso JOB_OBJECT_ALL_ACCESS. Se l'oggetto esiste prima della chiamata di funzione, la funzione restituisce un handle all'oggetto processo esistente e GetLastError restituisce ERROR_ALREADY_EXISTS.
Se la funzione ha esito negativo, il valore restituito è NULL. Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
Quando viene creato un processo, le informazioni contabili vengono inizializzate su zero, tutti i limiti sono inattivi e non sono presenti processi associati. Per assegnare un processo a un oggetto processo, usare la funzione assignProcessToJobObject
Tutti i processi associati a un processo devono essere eseguiti nella stessa sessione. Un processo è associato alla sessione del primo processo da assegnare al processo.
Windows Server 2003 e Windows XP: Un processo è associato alla sessione del processo che lo ha creato.
Per chiudere un handle di oggetto processo, usare la funzione CloseHandle
Per compilare un'applicazione che usa questa funzione, definire _WIN32_WINNT come 0x0500 o versione successiva. Per altre informazioni, vedere Uso delle intestazioni di Windows.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winbase.h (include Windows.h, Jobapi2.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |