Freigeben über


KeStackAttachProcess-Funktion (ntifs.h)

Die KeStackAttachProcess-Routine fügt den aktuellen Thread an den Adressraum des Zielprozesses an.

Vorsicht Verwenden Sie diese Routine mit äußerster Vorsicht. (Siehe hinweis im Abschnitt Hinweise.)
 

Syntax

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

Parameter

PROCESS

Zeiger auf das Zielprozessobjekt. Dieser Parameter kann ein PEPROCESS-Zeiger sein, der von IoGetCurrentProcess oder PsGetCurrentProcess zurückgegeben wird.

[out] ApcState

Ein undurchsichtiger Zeiger auf eine KAPC_STATE-Struktur. Der Aufrufer muss Speicher für diese Struktur entweder aus einem nicht ausgelagerten Pool oder aus dem eigenen Threadstapel des Aufrufers zuordnen.

Rückgabewert

Keine

Bemerkungen

KeStackAttachProcess fügt den aktuellen Thread an den Adressraum des Prozesses an, auf den der Process-Parameter verweist. Wenn der aktuelle Thread bereits an einen anderen Prozess angefügt wurde, empfängt der ApcState-Parameter den aktuellen APC-Zustand, bevor KeStackAttachProcess an den neuen Prozess anfügt.

Jeder Aufruf von KeStackAttachProcess muss durch einen nachfolgenden Aufruf von KeUnstackDetachProcess abgeglichen werden.

Hinweis Das Anfügen eines Threads an einen anderen Prozess kann verhindern, dass asynchrone E/A-Vorgänge abgeschlossen werden und möglicherweise zu Deadlocks führen. Im Allgemeinen sollten die Codezeilen zwischen dem Aufruf von KeStackAttachProcess und dem Aufruf von KeUnstackDetachProcess sehr einfach sein und sollten keine komplexen Routinen aufrufen oder IRPs an andere Treiber senden.
 

Weitere Informationen zur Verwendung von Systemthreads und zum Verwalten der Synchronisierung in einem nichtarbiträren Threadkontext finden Sie unter Windows Kernel-Mode Prozess- und Thread-Manager.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Zielplattform Universell
Header ntifs.h (include Ntifs.h, Fltkernel.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL < DISPATCH_LEVEL

Weitere Informationen

IoGetCurrentProcess

IoGetRequestorProcess

IoThreadToProcess

KeGetCurrentIrql

KeGetCurrentThread

KeUnstackDetachProcess

PsGetCurrentProcess

PsGetCurrentThread