Funzione KeStackAttachProcess (ntifs.h)

La routine KeStackAttachProcess collega il thread corrente allo spazio indirizzi del processo di destinazione.

Attenzione Utilizzare questa routine con estrema cautela. Vedere la nota nella sezione Osservazioni.
 

Sintassi

void KeStackAttachProcess(
        PRKPROCESS   PROCESS,
  [out] PRKAPC_STATE ApcState
);

Parametri

PROCESS

Puntatore all'oggetto processo di destinazione. Questo parametro può essere un puntatore PEPROCESS restituito da IoGetCurrentProcess o PsGetCurrentProcess.

[out] ApcState

Puntatore opaco a una struttura KAPC_STATE. Il chiamante deve allocare spazio di archiviazione per questa struttura dal pool non di paging o dallo stack di thread del chiamante.

Valore restituito

nessuno

Osservazioni

KeStackAttachProcess collega il thread corrente allo spazio indirizzi del processo a cui punta il parametro Process . Se il thread corrente è già stato collegato a un altro processo, il parametro ApcState riceve lo stato APC corrente prima che KeStackAttachProcess si connetti al nuovo processo.

Ogni chiamata a KeStackAttachProcess deve corrispondere a una chiamata successiva a KeUnstackDetachProcess.

Nota Il collegamento di un thread a un processo diverso può impedire il completamento delle operazioni di I/O asincrone e può causare deadlock. In generale, le righe di codice tra la chiamata a KeStackAttachProcess e la chiamata a KeUnstackDetachProcess devono essere molto semplici e non devono chiamare routine complesse o inviare irP ad altri driver.
 

Per altre informazioni sull'uso dei thread di sistema e sulla gestione della sincronizzazione all'interno di un contesto di thread non arbiverso, vedere Windows Kernel-Mode Process and Thread Manager.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h, Fltkernel.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Vedi anche

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread