#include <ntoskrnl.h>
#include <debug.h>
#include "inbv/logo.h"
Go to the source code of this file.
◆ NDEBUG
◆ PopGracefulShutdown()
Definition at line 232 of file poshtdwn.c.
233{
235
236
238
239
242 {
243
245 {
246
248 }
249
250
252 }
253
254
255 DPRINT(
"HAL shutting down\n");
257
258
260
261
262 DPRINT(
"I/O manager shutting down in phase 0\n");
264
265
266 DPRINT(
"Configuration Manager shutting down\n");
268
269
270 DPRINT(
"Executive shutting down\n");
272
273
275
276
277
279
280
281 DPRINT(
"I/O manager shutting down in phase 1\n");
284
285
286
287
289
290
291
292
293 DPRINT(
"Disabling wake timers\n");
295
296
297 DPRINT(
"Taking the system down\n");
299}
VOID NTAPI CcShutdownSystem(VOID)
VOID NTAPI CmShutdownSystem(VOID)
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
NTSTATUS NTAPI CcWaitForCurrentLazyWriterActivity(VOID)
VOID NTAPI ExShutdownSystem(VOID)
VOID NTAPI IoShutdownSystem(IN ULONG Phase)
VOID MmShutdownSystem(IN ULONG Phase)
POP_POWER_ACTION PopAction
VOID NTAPI PopProcessShutDownLists(VOID)
VOID NTAPI PopShutdownSystem(IN POWER_ACTION SystemAction)
VOID NTAPI ApphelpCacheShutdown(VOID)
PEPROCESS NTAPI PsGetNextProcess(IN PEPROCESS OldProcess OPTIONAL)
PEPROCESS PsInitialSystemProcess
Referenced by NtSetSystemPowerState().
◆ PopInitShutdownList()
Definition at line 35 of file poshtdwn.c.
36{
38
39
41
42
45
46
48
49
51}
#define KeInitializeEvent(pEvt, foo, foo2)
#define InitializeListHead(ListHead)
VOID FASTCALL KeInitializeGuardedMutex(OUT PKGUARDED_MUTEX GuardedMutex)
KGUARDED_MUTEX PopShutdownListMutex
BOOLEAN PopShutdownListAvailable
LIST_ENTRY PopShutdownQueue
PPOP_SHUTDOWN_WAIT_ENTRY PopShutdownThreadList
Referenced by PoInitSystem().
◆ PopProcessShutDownLists()
Definition at line 103 of file poshtdwn.c.
104{
108
109
111
112
114
115
117
118
120
121
123 {
124
127
128
130 }
131
132
134 {
135
138
139
142
143
145 }
146}
#define IsListEmpty(ListHead)
#define KeWaitForSingleObject(pEvt, foo, a, b, c)
#define KeSetEvent(pEvt, foo, foo2)
#define RemoveHeadList(ListHead)
VOID FASTCALL KeReleaseGuardedMutex(IN OUT PKGUARDED_MUTEX GuardedMutex)
VOID FASTCALL KeAcquireGuardedMutex(IN PKGUARDED_MUTEX GuardedMutex)
#define ExFreePoolWithTag(_P, _T)
struct _POP_SHUTDOWN_WAIT_ENTRY * NextEntry
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Must_inspect_result_ _In_ PWDF_WORKITEM_CONFIG _In_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWORKITEM * WorkItem
#define ObDereferenceObject
Referenced by PopGracefulShutdown().
◆ PopReadShutdownPolicy()
Definition at line 303 of file poshtdwn.c.
304{
312
313
315 L"\\Registry\\Machine\\Software\\Policies\\Microsoft\\Windows NT");
317 &KeyString,
321
322
325 {
326
329 &KeyString,
335 {
336
338 }
339
340
342 }
343}
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
@ KeyValuePartialInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
struct _KEY_VALUE_PARTIAL_INFORMATION KEY_VALUE_PARTIAL_INFORMATION
_In_ ULONG _In_ ULONG _In_ ULONG Length
ULONG PopShutdownPowerOffPolicy
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Referenced by NtSetSystemPowerState().
◆ PopShutdownHandler()
Definition at line 150 of file poshtdwn.c.
151{
152
155
156
158 {
159
162
164 }
165 else
166 {
167
169 }
170
171
173}
VOID NTAPI DisplayShutdownBitmap(VOID)
VOID NTAPI DisplayShutdownText(VOID)
IN OUT PLONG IN OUT PLONG Addend IN OUT PLONG IN LONG IN OUT PLONG IN LONG Increment KeRaiseIrqlToDpcLevel
VOID NTAPI InbvAcquireDisplayOwnership(VOID)
BOOLEAN NTAPI InbvCheckDisplayOwnership(VOID)
BOOLEAN NTAPI InbvResetDisplay(VOID)
BOOLEAN NTAPI InbvIsBootDriverInstalled(VOID)
void __cdecl _disable(void)
Referenced by PopShutdownSystem().
◆ PopShutdownSystem()
Definition at line 177 of file poshtdwn.c.
178{
179
180
181
182 DPRINT(
"It's the final countdown...%lx\n", SystemAction);
184
185
187
188
189 switch (SystemAction)
190 {
191
193
194
195
198 break;
199
201
202
204 {
205
206
207 }
208
210
211
212
213
214
217
218
220 break;
221
222 default:
223 break;
224 }
225
226
228}
VOID NTAPI HalReturnToFirmware(_In_ FIRMWARE_REENTRY Action)
VOID NTAPI DbgUnLoadImageSymbols(_In_ PSTRING Name, _In_ PVOID Base, _In_ ULONG_PTR ProcessId)
@ PowerActionShutdownReset
NTSTATUS NTAPI PopSetSystemPowerState(SYSTEM_POWER_STATE PowerState, POWER_ACTION PowerAction)
VOID NTAPI PopShutdownHandler(VOID)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
VOID NTAPI KeSetSystemAffinityThread(IN KAFFINITY Affinity)
Referenced by PopGracefulShutdown().
◆ PoQueueShutdownWorkItem()
Definition at line 352 of file poshtdwn.c.
354{
356
357
359
360
362 {
363
366 }
367 else
368 {
369
371 }
372
373
375
377}
#define InsertTailList(ListHead, Entry)
#define STATUS_SYSTEM_SHUTDOWN
◆ PoRequestShutdownEvent()
Definition at line 384 of file poshtdwn.c.
385{
388
389
391
392
395 {
397 }
398
399
402}
#define PsGetCurrentThread()
NTSTATUS NTAPI PoRequestShutdownWait(_In_ PETHREAD Thread)
Referenced by RawInputThreadMain().
◆ PoRequestShutdownWait()
Definition at line 55 of file poshtdwn.c.
57{
61
62
64 if (ShutDownWaitEntry ==
NULL)
65 {
67 }
68
69
72
73
75
76
78 {
79
82
83
85 }
86 else
87 {
88
92 }
93
94
96
97
99}
#define ExAllocatePoolWithTag(hernya, size, tag)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
#define STATUS_UNSUCCESSFUL
#define ObReferenceObject
Referenced by PoRequestShutdownEvent().
◆ PopShutdownEvent
◆ PopShutdownListAvailable
◆ PopShutdownListMutex
◆ PopShutdownPowerOffPolicy
ULONG PopShutdownPowerOffPolicy |
◆ PopShutdownQueue
◆ PopShutdownThreadList