-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCpuOpeationHeader.h
85 lines (78 loc) · 1.42 KB
/
CpuOpeationHeader.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef __CPU_OPERATION__
#define __CPU_OPERATION__
#include "DriverBaseHeader.h"
typedef union _$_dr7
{
ULONG64 value64;
struct
{
ULONG front32;
ULONG behind32;
}type32;
struct
{
ULONG L0 : 1;
ULONG G0 : 1;
ULONG L1 : 1;
ULONG G1 : 1;
ULONG L2 : 1;
ULONG G2 : 1;
ULONG L3 : 1;
ULONG G3 : 1;
ULONG LE : 1;
ULONG GE : 1;
ULONG ReservedSetBit10 : 1;
ULONG ReservedClearBits11_12 : 2;
ULONG GD : 1;
ULONG ReservedClearBits14_15 : 2;
ULONG R_W0 : 2;
ULONG LEN0 : 2;
ULONG R_W1 : 2;
ULONG LEN1 : 2;
ULONG R_W2 : 2;
ULONG LEN2 : 2;
ULONG R_W3 : 2;
ULONG LEN3 : 2;
ULONG ReservedBits32_63;
}typeBit;
} myDR7;
typedef union _$_cr4
{
ULONG64 value64;
struct
{
ULONG front32;
ULONG behind32;
}type32;
struct
{
ULONG VME : 1;
ULONG PVI : 1;
ULONG TSD : 1;
ULONG DE : 1;
ULONG PSE : 1;
ULONG PAE : 1;
ULONG MCE : 1;
ULONG PGE : 1;
ULONG PCE : 1;
ULONG OSFXSR : 1;
ULONG OSXMM_EXCPT : 1;
ULONG ReservedBits11_12 : 2;
ULONG VMXE : 1;
ULONG ReservedBits14_31 : 18;
ULONG ReservedBits32_63;
}typeBit;
}myCR4;
VOID __fastcall runRoutineForAllCpus(
VOID (__fastcall* eachCpuRoutine)(PVOID),
PVOID args
);
VOID __fastcall runRoutineAtPreciseCpu(
VOID (__fastcall* routine)(PVOID),
PVOID args,
ULONG targetCpuIndex
);
VOID(__fastcall checkCurrCpuIndex)(
PVOID args
);
#endif