3

KeSaveExtendedProcessorState / KeRestoreExtendedProcessorStateを使用して、Windows 7 64 ビットのデバイス ドライバーで拡張プロセッサの状態を保存および復元する前に、KeSaveExtendedProcessorState で BSOD を取得しました。

RtlGetEnabledExtendedFeatures ((ULONG64)(-1)) を使用 して有効な拡張機能 (戻り値は 0x3) を取得し、それを KeSaveExtendedProcessorState の最初のパラメーターとして使用し、MmAllocateContiguousMemory ( sizeof (XSTATE_SAVE), highAddress) を highAddress と共に使用しました。 = 0xbffffffff を使用して、拡張状態を保存するために使用される非ページ メモリを割り当て、KeSaveExtendedProcessorState の前に IRQL を DISPATCH_LEVEL に上げました。次のメッセージでBSODを取得しました:

0: kd> !analyze -v
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

INVALID_EXTENDED_PROCESSOR_STATE (131)
Invalid combination of parameters was detected while saving or restoring
extended processor state.
Arguments:
Arg1: 0000000000000000, Invalid feature mask was passed or extended processor state is
                not enabled.
Arg2: 0000000000800000, Nonzero if extended state is enabled.
Arg3: 0000000000000003, The low 32 bits of the feature mask.
Arg4: 0000000000000000, The high 32 bits of the feature mask.

私は何を取りこぼしたか?

ありがとう。

よろしく、デビッド

4

1 に答える 1