]> git.proxmox.com Git - rustc.git/blob - vendor/ntapi/src/ntkeapi.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / ntapi / src / ntkeapi.rs
1 use winapi::shared::ntdef::{BOOLEAN, NTSTATUS, PVOID, ULONG};
2 pub const LOW_PRIORITY: u32 = 0;
3 pub const LOW_REALTIME_PRIORITY: u32 = 16;
4 pub const HIGH_PRIORITY: u32 = 31;
5 pub const MAXIMUM_PRIORITY: u32 = 32;
6 ENUM!{enum KTHREAD_STATE {
7 Initialized = 0,
8 Ready = 1,
9 Running = 2,
10 Standby = 3,
11 Terminated = 4,
12 Waiting = 5,
13 Transition = 6,
14 DeferredReady = 7,
15 GateWaitObsolete = 8,
16 WaitingForProcessInSwap = 9,
17 MaximumThreadState = 10,
18 }}
19 pub type PKTHREAD_STATE = *mut KTHREAD_STATE;
20 ENUM!{enum KHETERO_CPU_POLICY {
21 KHeteroCpuPolicyAll = 0,
22 KHeteroCpuPolicyLarge = 1,
23 KHeteroCpuPolicyLargeOrIdle = 2,
24 KHeteroCpuPolicySmall = 3,
25 KHeteroCpuPolicySmallOrIdle = 4,
26 KHeteroCpuPolicyDynamic = 5,
27 KHeteroCpuPolicyStaticMax = 6,
28 KHeteroCpuPolicyBiasedSmall = 7,
29 KHeteroCpuPolicyBiasedLarge = 8,
30 KHeteroCpuPolicyDefault = 9,
31 KHeteroCpuPolicyMax = 10,
32 }}
33 pub type PKHETERO_CPU_POLICY = *mut KHETERO_CPU_POLICY;
34 ENUM!{enum KWAIT_REASON {
35 Executive = 0,
36 FreePage = 1,
37 PageIn = 2,
38 PoolAllocation = 3,
39 DelayExecution = 4,
40 Suspended = 5,
41 UserRequest = 6,
42 WrExecutive = 7,
43 WrFreePage = 8,
44 WrPageIn = 9,
45 WrPoolAllocation = 10,
46 WrDelayExecution = 11,
47 WrSuspended = 12,
48 WrUserRequest = 13,
49 WrEventPair = 14,
50 WrQueue = 15,
51 WrLpcReceive = 16,
52 WrLpcReply = 17,
53 WrVirtualMemory = 18,
54 WrPageOut = 19,
55 WrRendezvous = 20,
56 WrKeyedEvent = 21,
57 WrTerminated = 22,
58 WrProcessInSwap = 23,
59 WrCpuRateControl = 24,
60 WrCalloutStack = 25,
61 WrKernel = 26,
62 WrResource = 27,
63 WrPushLock = 28,
64 WrMutex = 29,
65 WrQuantumEnd = 30,
66 WrDispatchInt = 31,
67 WrPreempted = 32,
68 WrYieldExecution = 33,
69 WrFastMutex = 34,
70 WrGuardedMutex = 35,
71 WrRundown = 36,
72 WrAlertByThreadId = 37,
73 WrDeferredPreempt = 38,
74 MaximumWaitReason = 39,
75 }}
76 pub type PKWAIT_REASON = *mut KWAIT_REASON;
77 ENUM!{enum KPROFILE_SOURCE {
78 ProfileTime = 0,
79 ProfileAlignmentFixup = 1,
80 ProfileTotalIssues = 2,
81 ProfilePipelineDry = 3,
82 ProfileLoadInstructions = 4,
83 ProfilePipelineFrozen = 5,
84 ProfileBranchInstructions = 6,
85 ProfileTotalNonissues = 7,
86 ProfileDcacheMisses = 8,
87 ProfileIcacheMisses = 9,
88 ProfileCacheMisses = 10,
89 ProfileBranchMispredictions = 11,
90 ProfileStoreInstructions = 12,
91 ProfileFpInstructions = 13,
92 ProfileIntegerInstructions = 14,
93 Profile2Issue = 15,
94 Profile3Issue = 16,
95 Profile4Issue = 17,
96 ProfileSpecialInstructions = 18,
97 ProfileTotalCycles = 19,
98 ProfileIcacheIssues = 20,
99 ProfileDcacheAccesses = 21,
100 ProfileMemoryBarrierCycles = 22,
101 ProfileLoadLinkedIssues = 23,
102 ProfileMaximum = 24,
103 }}
104 EXTERN!{extern "system" {
105 fn NtCallbackReturn(
106 OutputBuffer: PVOID,
107 OutputLength: ULONG,
108 Status: NTSTATUS,
109 ) -> NTSTATUS;
110 fn NtFlushProcessWriteBuffers();
111 fn NtQueryDebugFilterState(
112 ComponentId: ULONG,
113 Level: ULONG,
114 ) -> NTSTATUS;
115 fn NtSetDebugFilterState(
116 ComponentId: ULONG,
117 Level: ULONG,
118 State: BOOLEAN,
119 ) -> NTSTATUS;
120 fn NtYieldExecution() -> NTSTATUS;
121 }}