113 ASSERT(StartupLoc.HighPart == 0);
114 ASSERT((StartupLoc.QuadPart & 0xFFF) == 0);
115 ASSERT((StartupLoc.QuadPart & 0xFFF00FFF) == 0);
162 APIC_DSH DestinationShortHand = IncludeSelf ?
170 DestinationShortHand);
189 ULONG ProcessorIndex;
193 TargetSet &= ActiveProcessors;
196 if (TargetSet == ActiveProcessors)
212 RemainingSet = TargetSet;
213 while (RemainingSet != 0)
218 RemainingSet &= ~SetMember;
254HalpSendSoftwareInterrupt(
290 ULONG ProcessorIndex;
297 RemainingSet = TargetSet;
298 while (RemainingSet != 0)
303 RemainingSet &= ~SetMember;
#define EFLAGS_INTERRUPT_MASK
@ APIC_DSH_AllIncludingSelf
@ APIC_DSH_AllExcludingSelf
FORCEINLINE ULONG ApicRead(APIC_REGISTER Register)
FORCEINLINE VOID ApicWrite(APIC_REGISTER Register, ULONG Value)
FORCEINLINE VOID ApicRequestGlobalInterrupt(_In_ UCHAR DestinationProcessor, _In_ UCHAR Vector, _In_ APIC_MT MessageType, _In_ APIC_TGM TriggerMode, _In_ APIC_DSH DestinationShortHand)
VOID ApicStartApplicationProcessor(_In_ ULONG NTProcessorNumber, _In_ PHYSICAL_ADDRESS StartupLoc)
VOID NTAPI HalpRequestIpi(_In_ KAFFINITY TargetSet)
Requests an IPI interrupt on the specified processors.
VOID NTAPI HalRequestIpiSpecifyVector(_In_ KAFFINITY TargetSet, _In_ UCHAR Vector)
Requests an IPI with a specified vector on the specified processors.
VOID NTAPI HalpBroadcastIpiSpecifyVector(_In_ UCHAR Vector, _In_ BOOLEAN IncludeSelf)
Broadcasts an IPI with a specified vector to all processors.
_In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ ULONG _In_ ULONG Flags
KAFFINITY HalpActiveProcessors
__INTRIN_INLINE uintptr_t __readeflags(void)
PROCESSOR_IDENTITY HalpProcessorIdentity[MAXIMUM_PROCESSORS]
#define KeStallExecutionProcessor(MicroSeconds)
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
FORCEINLINE KAFFINITY AFFINITY_MASK(ULONG Index)
FORCEINLINE BOOLEAN BitScanForwardAffinity(PULONG Index, KAFFINITY Mask)
void __cdecl _disable(void)
void __cdecl _enable(void)
UINT64 DestinationShortHand