[XDK]
[reactos.git] / include / xdk / psfuncs.h
1 /******************************************************************************
2 * Process Manager Functions *
3 ******************************************************************************/
4 $if (_NTDDK_)
5 extern NTKERNELAPI PEPROCESS PsInitialSystemProcess;
6 $endif
7
8 $if (_WDMDDK_)
9 /*
10 * PEPROCESS
11 * PsGetCurrentProcess(VOID)
12 */
13 #define PsGetCurrentProcess IoGetCurrentProcess
14
15 #if !defined(_PSGETCURRENTTHREAD_)
16 #define _PSGETCURRENTTHREAD_
17
18 FORCEINLINE
19 PETHREAD
20 NTAPI
21 PsGetCurrentThread(VOID)
22 {
23 return (PETHREAD)KeGetCurrentThread();
24 }
25
26 #endif
27 $endif
28
29 #if (NTDDI_VERSION >= NTDDI_WIN2K)
30
31 $if (_NTDDK_)
32 NTKERNELAPI
33 NTSTATUS
34 NTAPI
35 PsSetCreateProcessNotifyRoutine(
36 IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
37 IN BOOLEAN Remove);
38
39 NTKERNELAPI
40 NTSTATUS
41 NTAPI
42 PsSetCreateThreadNotifyRoutine(
43 IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
44
45 NTKERNELAPI
46 NTSTATUS
47 NTAPI
48 PsSetLoadImageNotifyRoutine(
49 IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
50
51 NTKERNELAPI
52 HANDLE
53 NTAPI
54 PsGetCurrentProcessId(VOID);
55
56 NTKERNELAPI
57 HANDLE
58 NTAPI
59 PsGetCurrentThreadId(VOID);
60
61 NTKERNELAPI
62 BOOLEAN
63 NTAPI
64 PsGetVersion(
65 OUT PULONG MajorVersion OPTIONAL,
66 OUT PULONG MinorVersion OPTIONAL,
67 OUT PULONG BuildNumber OPTIONAL,
68 OUT PUNICODE_STRING CSDVersion OPTIONAL);
69 $endif
70
71 $if (_WDMDDK_)
72 NTKERNELAPI
73 NTSTATUS
74 NTAPI
75 PsCreateSystemThread(
76 OUT PHANDLE ThreadHandle,
77 IN ULONG DesiredAccess,
78 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
79 IN HANDLE ProcessHandle OPTIONAL,
80 OUT PCLIENT_ID ClientId OPTIONAL,
81 IN PKSTART_ROUTINE StartRoutine,
82 IN PVOID StartContext OPTIONAL);
83
84 NTKERNELAPI
85 NTSTATUS
86 NTAPI
87 PsTerminateSystemThread(
88 IN NTSTATUS ExitStatus);
89 $endif
90
91 #endif
92
93 $if (_NTDDK_)
94 #if (NTDDI_VERSION >= NTDDI_WINXP)
95
96 NTKERNELAPI
97 HANDLE
98 NTAPI
99 PsGetProcessId(
100 IN PEPROCESS Process);
101
102 NTKERNELAPI
103 HANDLE
104 NTAPI
105 PsGetThreadId(
106 IN PETHREAD Thread);
107
108 NTKERNELAPI
109 NTSTATUS
110 NTAPI
111 PsRemoveCreateThreadNotifyRoutine(
112 IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
113
114 NTKERNELAPI
115 NTSTATUS
116 NTAPI
117 PsRemoveLoadImageNotifyRoutine(
118 IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
119
120 NTKERNELAPI
121 LONGLONG
122 NTAPI
123 PsGetProcessCreateTimeQuadPart(
124 IN PEPROCESS Process);
125
126 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
127
128 #if (NTDDI_VERSION >= NTDDI_WS03)
129 NTKERNELAPI
130 HANDLE
131 NTAPI
132 PsGetThreadProcessId(
133 IN PETHREAD Thread);
134 #endif
135
136 #if (NTDDI_VERSION >= NTDDI_VISTA)
137
138 NTKERNELAPI
139 BOOLEAN
140 NTAPI
141 PsSetCurrentThreadPrefetching(
142 IN BOOLEAN Prefetching);
143
144 NTKERNELAPI
145 BOOLEAN
146 NTAPI
147 PsIsCurrentThreadPrefetching(VOID);
148
149 #endif
150
151 #if (NTDDI_VERSION >= NTDDI_VISTASP1)
152 NTKERNELAPI
153 NTSTATUS
154 NTAPI
155 PsSetCreateProcessNotifyRoutineEx(
156 IN PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
157 IN BOOLEAN Remove);
158 #endif
159 $endif
160
161 $if (_WDMDDK_)
162 NTKERNELAPI
163 NTSTATUS
164 NTAPI
165 PsWrapApcWow64Thread(
166 IN OUT PVOID *ApcContext,
167 IN OUT PVOID *ApcRoutine);
168 $end
169