175{
178
179
182
183
184 if (OldThread->NpxState != 0)
185 {
186 KiSaveXState(OldThread->StateSaveArea, OldThread->NpxState);
187 }
188
189
190 if (NewThread->NpxState != 0)
191 {
193 }
194
195
196 OldProcess = OldThread->ApcState.Process;
197 NewProcess = NewThread->ApcState.Process;
198 if (OldProcess != NewProcess)
199 {
200
202
203
204
205 }
206
207
210 {
211
213 }
214
215
217 NewThread->ContextSwitches++;
218
219
221 {
222
227 0);
228 }
229
230
231 OldThread->SwapBusy =
FALSE;
232
233
234 if (NewThread->ApcState.KernelApcPending)
235 {
236
237 if ((NewThread->SpecialApcDisable == 0) &&
238 (ApcBypass == 0))
239 {
240
242 }
243
244
246 }
247
248
250}
FORCEINLINE VOID KiRestoreXState(_In_ PVOID Buffer, _In_ ULONG64 ComponentMask)
FORCEINLINE VOID KiSaveXState(_Out_ PVOID Buffer, _In_ ULONG64 ComponentMask)
VOID FASTCALL HalRequestSoftwareInterrupt(IN KIRQL Irql)
PPC_QUAL void __writemsr(const unsigned long Value)
__INTRIN_INLINE void __writecr3(unsigned int Data)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
ULONG_PTR DirectoryTableBase