Implement KeGetCurrentThread() routine

このコミットが含まれているのは:
2023-02-08 23:58:24 +01:00
コミット c4a52938d2
3個のファイルの変更25行の追加0行の削除

ファイルの表示

@@ -20,6 +20,10 @@ XTAPI
PKPROCESSOR_CONTROL_BLOCK PKPROCESSOR_CONTROL_BLOCK
KeGetCurrentProcessorControlBlock(VOID); KeGetCurrentProcessorControlBlock(VOID);
XTAPI
PKTHREAD
KeGetCurrentThread(VOID);
XTAPI XTAPI
VOID VOID
KepArchInitialize(VOID); KepArchInitialize(VOID);

ファイルの表示

@@ -37,3 +37,17 @@ KeGetCurrentProcessorControlBlock(VOID)
{ {
return (PKPROCESSOR_CONTROL_BLOCK)ArReadGSQuadWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb)); return (PKPROCESSOR_CONTROL_BLOCK)ArReadGSQuadWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb));
} }
/**
* Gets address of current kernel's thread object.
*
* @return This routine returns address of current kernel's thread object.
*
* @since XT 1.0
*/
XTAPI
PKTHREAD
KeGetCurrentThread(VOID)
{
return (PKTHREAD)ArReadGSQuadWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb.CurrentThread));
}

ファイルの表示

@@ -37,3 +37,10 @@ KeGetCurrentProcessorControlBlock(VOID)
{ {
return (PKPROCESSOR_CONTROL_BLOCK)ArReadFSDualWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb)); return (PKPROCESSOR_CONTROL_BLOCK)ArReadFSDualWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb));
} }
XTAPI
PKTHREAD
KeGetCurrentThread(VOID)
{
return (PKTHREAD)ArReadFSDualWord(FIELD_OFFSET(KPROCESSOR_BLOCK, Prcb.CurrentThread));
}