Threading and Synchronization


The common convention used to pass data between threads is the semaphore guarded linked list. This technique requires the use of the following functions:

  • PsCreateSystemThread

  • PsTerminateSystemThread

  • InitializeListHead

  • KeInitializeSemaphore

  • KeWaitForSingleObject

  • KeInitializeSpinLock

  • ExInterlockedInsertTailList

  • ExInterlockedRemoveHeadList

PsCreateSystemThread and PsTerminateSystemThread are used to start and stop the passive-level thread. InitializeListHead is used to initialize shared data storage. KeInitializeSemaphore and KeWaitForSingleObject are used to synchronize access to shared data storage. Finally, KeInitialize SpinLock , ExInterlockedInsertTailList, and ExInterlockedRemoveHeadList are used to transfer data to and from shared storage.




Professional Rootkits
Professional Rootkits (Programmer to Programmer)
ISBN: 0470101547
EAN: 2147483647
Year: 2007
Pages: 229
Authors: Ric Vieler

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net