2005年05月19日

カーネルスレッド

 カーネルモードでもスレッドの作成、制御に多くのルーチンが提供されている。

スレッドの作成と削除

 スレッドがPsTerminateSystemThreadを呼び出して自らを終了させることができる。また、

ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
PKTHREAD thread = KeGetCurrentThread();

で自らのKTHREADへのポインタを取得したり、

HANDLE hthread;
PKTHREAD thread;
PsCreateSystemThread(&hthread, ...);
ObReferenceObjectByHandle(hthread, THREAD_ALL_ACCESS, NULL, KernelMode, (PVOID*)&thread, NULL);
ZwClose(hthread);
ObDereferenceObject(thread);

スレッドハンドルからKTHREADへのポインタを取得し、操作することもできる。





参考文献

1. Microsoft WDMプログラミング―WindowsXP対応
2.WindowsXPフィルタドライバプログラミング 入門と実践
3. WDMデバイスドライバプログラミング完全ガイド〈上〉
4. WDMデバイスドライバプログラミング完全ガイド〈下〉

blackcat_1973 at 15:49│Comments(0)TrackBack(0)ソフトウェア開発 

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Profile
blackcat
スポンサー
訪問者数

QRコード
QRコード