2 * COPYRIGHT: See COPYRIGHT.TXT
3 * PROJECT: Ext2 File System Driver for WinNT/2K/XP
5 * PROGRAMMER: Matt Wu <mattwu@163.com>
6 * HOMEPAGE: http://www.ext2fsd.com
10 /* INCLUDES **************************************************************/
15 /* GLOBALS ***************************************************************/
19 #define SYSTEM_PROCESS_NAME "System"
21 extern PEXT2_GLOBAL Ext2Global
;
23 ULONG DebugFilter
= DL_DEFAULT
;
25 ULONG ProcessNameOffset
= 0;
27 /* DEFINITIONS ***********************************************************/
30 /* Static Definitions ****************************************************/
32 static PUCHAR IrpMjStrings
[] = {
34 "IRP_MJ_CREATE_NAMED_PIPE",
38 "IRP_MJ_QUERY_INFORMATION",
39 "IRP_MJ_SET_INFORMATION",
42 "IRP_MJ_FLUSH_BUFFERS",
43 "IRP_MJ_QUERY_VOLUME_INFORMATION",
44 "IRP_MJ_SET_VOLUME_INFORMATION",
45 "IRP_MJ_DIRECTORY_CONTROL",
46 "IRP_MJ_FILE_SYSTEM_CONTROL",
47 "IRP_MJ_DEVICE_CONTROL",
48 "IRP_MJ_INTERNAL_DEVICE_CONTROL",
50 "IRP_MJ_LOCK_CONTROL",
52 "IRP_MJ_CREATE_MAILSLOT",
53 "IRP_MJ_QUERY_SECURITY",
54 "IRP_MJ_SET_SECURITY",
56 "IRP_MJ_SYSTEM_CONTROL",
57 "IRP_MJ_DEVICE_CHANGE",
63 static PUCHAR FileInformationClassStrings
[] = {
64 "Unknown FileInformationClass 0",
65 "FileDirectoryInformation",
66 "FileFullDirectoryInformation",
67 "FileBothDirectoryInformation",
68 "FileBasicInformation",
69 "FileStandardInformation",
70 "FileInternalInformation",
72 "FileAccessInformation",
73 "FileNameInformation",
74 "FileRenameInformation",
75 "FileLinkInformation",
76 "FileNamesInformation",
77 "FileDispositionInformation",
78 "FilePositionInformation",
79 "FileFullEaInformation",
80 "FileModeInformation",
81 "FileAlignmentInformation",
83 "FileAllocationInformation",
84 "FileEndOfFileInformation",
85 "FileAlternateNameInformation",
86 "FileStreamInformation",
87 "FilePipeInformation",
88 "FilePipeLocalInformation",
89 "FilePipeRemoteInformation",
90 "FileMailslotQueryInformation",
91 "FileMailslotSetInformation",
92 "FileCompressionInformation",
93 "FileObjectIdInformation",
94 "FileCompletionInformation",
95 "FileMoveClusterInformation",
96 "FileQuotaInformation",
97 "FileReparsePointInformation",
98 "FileNetworkOpenInformation",
99 "FileAttributeTagInformation",
100 "FileTrackingInformation"
103 static PUCHAR FsInformationClassStrings
[] = {
104 "Unknown FsInformationClass 0",
105 "FileFsVolumeInformation",
106 "FileFsLabelInformation",
107 "FileFsSizeInformation",
108 "FileFsDeviceInformation",
109 "FileFsAttributeInformation",
110 "FileFsControlInformation",
111 "FileFsFullSizeInformation",
112 "FileFsObjectIdInformation"
117 * This function is variable-argument, level-sensitive debug print routine.
118 * If the specified debug level for the print statement is lower or equal
119 * to the current debug level, the message will be printed.
122 * DebugMessage - Variable argument ascii c string
131 #define DBG_BUF_LEN 0x100
139 LARGE_INTEGER CurrentTime
;
140 TIME_FIELDS TimeFields
;
141 CHAR Buffer
[DBG_BUF_LEN
];
144 RtlZeroMemory(Buffer
, DBG_BUF_LEN
);
145 va_start(ap
, DebugMessage
);
147 KeQuerySystemTime( &CurrentTime
);
148 RtlTimeToTimeFields(&CurrentTime
, &TimeFields
);
149 _vsnprintf(&Buffer
[0], DBG_BUF_LEN
, DebugMessage
, ap
);
151 DbgPrint(DRIVER_NAME
":~%d: %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s",
152 KeGetCurrentProcessorNumber(),
153 TimeFields
.Hour
, TimeFields
.Minute
,
154 TimeFields
.Second
, TimeFields
.Milliseconds
,
155 PsGetCurrentThread(), Buffer
);
167 LARGE_INTEGER CurrentTime
;
168 TIME_FIELDS TimeFields
;
172 va_start(ap
, DebugMessage
);
174 KeQuerySystemTime( &CurrentTime
);
175 RtlTimeToTimeFields(&CurrentTime
, &TimeFields
);
176 _vsnprintf(&Buffer
[0], 0x100, DebugMessage
, ap
);
178 DbgPrint(DRIVER_NAME
":~%d: %2.2d:%2.2d:%2.2d:%3.3d %8.8x: %s",
179 KeGetCurrentProcessorNumber(),
180 TimeFields
.Hour
, TimeFields
.Minute
,
181 TimeFields
.Second
, TimeFields
.Milliseconds
,
182 PsGetCurrentThread(), Buffer
);
189 Ext2GetProcessNameOffset ( VOID
)
194 Process
= PsGetCurrentProcess();
196 for (i
= 0; i
< PAGE_SIZE
; i
++) {
200 strlen(SYSTEM_PROCESS_NAME
)
207 DEBUG(DL_ERR
, ( ": *** FsdGetProcessNameOffset failed ***\n"));
214 Ext2DbgPrintCall (IN PDEVICE_OBJECT DeviceObject
,
217 PIO_STACK_LOCATION IoStackLocation
;
218 PFILE_OBJECT FileObject
;
221 FILE_INFORMATION_CLASS FileInformationClass
;
222 FS_INFORMATION_CLASS FsInformationClass
;
224 IoStackLocation
= IoGetCurrentIrpStackLocation(Irp
);
226 FileObject
= IoStackLocation
->FileObject
;
228 FileName
= L
"Unknown";
230 if (DeviceObject
== Ext2Global
->DiskdevObject
) {
232 FileName
= DEVICE_NAME
;
234 } else if (DeviceObject
== Ext2Global
->CdromdevObject
) {
236 FileName
= CDROM_NAME
;
238 } else if (FileObject
&& FileObject
->FsContext
) {
240 Fcb
= (PEXT2_FCB
) FileObject
->FsContext
;
242 if (Fcb
->Identifier
.Type
== EXT2VCB
) {
243 FileName
= L
"\\Volume";
244 } else if (Fcb
->Identifier
.Type
== EXT2FCB
&& Fcb
->Mcb
->FullName
.Buffer
) {
245 FileName
= Fcb
->Mcb
->FullName
.Buffer
;
249 switch (IoStackLocation
->MajorFunction
) {
255 if (DeviceObject
== Ext2Global
->DiskdevObject
) {
256 FileName
= DEVICE_NAME
;
257 } else if (DeviceObject
== Ext2Global
->CdromdevObject
) {
258 FileName
= CDROM_NAME
;
259 } else if (IoStackLocation
->FileObject
->FileName
.Length
== 0) {
260 FileName
= L
"\\Volume";
264 DEBUGNI(DL_FUN
, ("%s %s %S\n",
265 Ext2GetCurrentProcessName(),
266 IrpMjStrings
[IoStackLocation
->MajorFunction
],
269 } else if (IoStackLocation
->FileObject
->FileName
.Buffer
) {
270 DEBUGNI(DL_FUN
, ("%s %s %S\n",
271 Ext2GetCurrentProcessName(),
272 IrpMjStrings
[IoStackLocation
->MajorFunction
],
273 IoStackLocation
->FileObject
->FileName
.Buffer
276 DEBUGNI(DL_FUN
, ("%s %s %s\n",
277 Ext2GetCurrentProcessName(),
278 IrpMjStrings
[IoStackLocation
->MajorFunction
],
287 DEBUGNI(DL_FUN
, ("%s %s %S\n",
288 Ext2GetCurrentProcessName(),
289 IrpMjStrings
[IoStackLocation
->MajorFunction
],
297 if (IoStackLocation
->MinorFunction
& IRP_MN_COMPLETE
) {
298 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_COMPLETE\n",
299 Ext2GetCurrentProcessName(),
300 IrpMjStrings
[IoStackLocation
->MajorFunction
],
304 DEBUGNI(DL_FUN
, ("%s %s %S Offset: %I64xh Length: %xh %s%s%s%s%s%s\n",
305 Ext2GetCurrentProcessName(),
306 IrpMjStrings
[IoStackLocation
->MajorFunction
],
308 IoStackLocation
->Parameters
.Read
.ByteOffset
.QuadPart
,
309 IoStackLocation
->Parameters
.Read
.Length
,
310 (IoStackLocation
->MinorFunction
& IRP_MN_DPC
? "IRP_MN_DPC " : " "),
311 (IoStackLocation
->MinorFunction
& IRP_MN_MDL
? "IRP_MN_MDL " : " "),
312 (IoStackLocation
->MinorFunction
& IRP_MN_COMPRESSED
? "IRP_MN_COMPRESSED " : " "),
313 (Irp
->Flags
& IRP_PAGING_IO
? "IRP_PAGING_IO " : " "),
314 (Irp
->Flags
& IRP_NOCACHE
? "IRP_NOCACHE " : " "),
315 (FileObject
->Flags
& FO_SYNCHRONOUS_IO
? "FO_SYNCHRONOUS_IO " : " ")
323 if (IoStackLocation
->MinorFunction
& IRP_MN_COMPLETE
) {
324 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_COMPLETE\n",
325 Ext2GetCurrentProcessName(),
326 IrpMjStrings
[IoStackLocation
->MajorFunction
],
330 DEBUGNI(DL_FUN
, ("%s %s %S Offset: %I64xh Length: %xh %s%s%s%s%s%s\n",
331 Ext2GetCurrentProcessName(),
332 IrpMjStrings
[IoStackLocation
->MajorFunction
],
334 IoStackLocation
->Parameters
.Read
.ByteOffset
.QuadPart
,
335 IoStackLocation
->Parameters
.Read
.Length
,
336 (IoStackLocation
->MinorFunction
& IRP_MN_DPC
? "IRP_MN_DPC " : " "),
337 (IoStackLocation
->MinorFunction
& IRP_MN_MDL
? "IRP_MN_MDL " : " "),
338 (IoStackLocation
->MinorFunction
& IRP_MN_COMPRESSED
? "IRP_MN_COMPRESSED " : " "),
339 (Irp
->Flags
& IRP_PAGING_IO
? "IRP_PAGING_IO " : " "),
340 (Irp
->Flags
& IRP_NOCACHE
? "IRP_NOCACHE " : " "),
341 (FileObject
->Flags
& FO_SYNCHRONOUS_IO
? "FO_SYNCHRONOUS_IO " : " ")
347 case IRP_MJ_QUERY_INFORMATION
:
349 FileInformationClass
=
350 IoStackLocation
->Parameters
.QueryFile
.FileInformationClass
;
352 if (FileInformationClass
<= FileMaximumInformation
) {
353 DEBUGNI(DL_FUN
, ("%s %s %S %s\n",
354 Ext2GetCurrentProcessName(),
355 IrpMjStrings
[IoStackLocation
->MajorFunction
],
357 FileInformationClassStrings
[FileInformationClass
]
360 DEBUGNI(DL_FUN
, ("%s %s %S Unknown FileInformationClass %u\n",
361 Ext2GetCurrentProcessName(),
362 IrpMjStrings
[IoStackLocation
->MajorFunction
],
370 case IRP_MJ_SET_INFORMATION
:
372 FileInformationClass
=
373 IoStackLocation
->Parameters
.SetFile
.FileInformationClass
;
375 if (FileInformationClass
<= FileMaximumInformation
) {
376 DEBUGNI(DL_FUN
, ("%s %s %S %s\n",
377 Ext2GetCurrentProcessName(),
378 IrpMjStrings
[IoStackLocation
->MajorFunction
],
380 FileInformationClassStrings
[FileInformationClass
]
383 DEBUGNI(DL_FUN
, ("%s %s %S Unknown FileInformationClass %u\n",
384 Ext2GetCurrentProcessName(),
385 IrpMjStrings
[IoStackLocation
->MajorFunction
],
393 case IRP_MJ_QUERY_VOLUME_INFORMATION
:
396 IoStackLocation
->Parameters
.QueryVolume
.FsInformationClass
;
398 if (FsInformationClass
<= FileFsMaximumInformation
) {
399 DEBUGNI(DL_FUN
, ("%s %s %S %s\n",
400 Ext2GetCurrentProcessName(),
401 IrpMjStrings
[IoStackLocation
->MajorFunction
],
403 FsInformationClassStrings
[FsInformationClass
]
406 DEBUGNI(DL_FUN
, ("%s %s %S Unknown FsInformationClass %u\n",
407 Ext2GetCurrentProcessName(),
408 IrpMjStrings
[IoStackLocation
->MajorFunction
],
416 case IRP_MJ_DIRECTORY_CONTROL
:
418 if (IoStackLocation
->MinorFunction
& IRP_MN_QUERY_DIRECTORY
) {
421 FileInformationClass
=
422 IoStackLocation
->Parameters
.QueryDirectory
.FileInformationClass
;
424 FileInformationClass
= ((PEXTENDED_IO_STACK_LOCATION
)
425 IoStackLocation
)->Parameters
.QueryDirectory
.FileInformationClass
;
428 if (FileInformationClass
<= FileMaximumInformation
) {
429 DEBUGNI(DL_FUN
, ("%s %s %S %s\n",
430 Ext2GetCurrentProcessName(),
431 IrpMjStrings
[IoStackLocation
->MajorFunction
],
433 FileInformationClassStrings
[FileInformationClass
]
438 IoStackLocation
->Parameters
.QueryDirectory
.FileName
440 ((PEXTENDED_IO_STACK_LOCATION
)
441 IoStackLocation
)->Parameters
.QueryDirectory
.FileName
445 DEBUGNI(DL_FUN
, ("%s FileName: %.*S FileIndex: %x %s%s%s\n",
446 Ext2GetCurrentProcessName(),
448 IoStackLocation
->Parameters
.QueryDirectory
.FileName
->Length
/ 2,
449 IoStackLocation
->Parameters
.QueryDirectory
.FileName
->Buffer
,
450 IoStackLocation
->Parameters
.QueryDirectory
.FileIndex
,
451 (IoStackLocation
->Flags
& SL_RESTART_SCAN
? "SL_RESTART_SCAN " : ""),
452 (IoStackLocation
->Flags
& SL_RETURN_SINGLE_ENTRY
? "SL_RETURN_SINGLE_ENTRY " : ""),
453 ((IoStackLocation
->Flags
& SL_INDEX_SPECIFIED
) ? "SL_INDEX_SPECIFIED " : "")
457 DEBUGNI(DL_FUN
, ("%s FileName: %.*S FileIndex: %x %s%s%s\n",
458 Ext2GetCurrentProcessName(),
460 ((PEXTENDED_IO_STACK_LOCATION
)
461 IoStackLocation
)->Parameters
.QueryDirectory
.FileName
->Length
/ 2,
462 ((PEXTENDED_IO_STACK_LOCATION
)
463 IoStackLocation
)->Parameters
.QueryDirectory
.FileName
->Buffer
,
464 ((PEXTENDED_IO_STACK_LOCATION
)
465 IoStackLocation
)->Parameters
.QueryDirectory
.FileIndex
,
466 (IoStackLocation
->Flags
& SL_RESTART_SCAN
? "SL_RESTART_SCAN " : ""),
467 (IoStackLocation
->Flags
& SL_RETURN_SINGLE_ENTRY
? "SL_RETURN_SINGLE_ENTRY " : ""),
468 ((IoStackLocation
->Flags
& SL_INDEX_SPECIFIED
) ? "SL_INDEX_SPECIFIED " : "")
473 DEBUGNI(DL_FUN
, ("%s FileName: FileIndex: %#x %s%s%s\n",
474 Ext2GetCurrentProcessName(),
475 IoStackLocation
->Parameters
.QueryDirectory
.FileIndex
,
476 (IoStackLocation
->Flags
& SL_RESTART_SCAN
? "SL_RESTART_SCAN " : ""),
477 (IoStackLocation
->Flags
& SL_RETURN_SINGLE_ENTRY
? "SL_RETURN_SINGLE_ENTRY " : ""),
478 (IoStackLocation
->Flags
& SL_INDEX_SPECIFIED
? "SL_INDEX_SPECIFIED " : "")
481 DEBUGNI(DL_FUN
, ("%s FileName: FileIndex: %#x %s%s%s\n",
482 Ext2GetCurrentProcessName(),
483 ((PEXTENDED_IO_STACK_LOCATION
)
484 IoStackLocation
)->Parameters
.QueryDirectory
.FileIndex
,
485 (IoStackLocation
->Flags
& SL_RESTART_SCAN
? "SL_RESTART_SCAN " : ""),
486 (IoStackLocation
->Flags
& SL_RETURN_SINGLE_ENTRY
? "SL_RETURN_SINGLE_ENTRY " : ""),
487 (IoStackLocation
->Flags
& SL_INDEX_SPECIFIED
? "SL_INDEX_SPECIFIED " : "")
492 DEBUGNI(DL_FUN
, ("%s %s %S Unknown FileInformationClass %u\n",
493 Ext2GetCurrentProcessName(),
494 IrpMjStrings
[IoStackLocation
->MajorFunction
],
499 } else if (IoStackLocation
->MinorFunction
& IRP_MN_NOTIFY_CHANGE_DIRECTORY
) {
500 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_NOTIFY_CHANGE_DIRECTORY\n",
501 Ext2GetCurrentProcessName(),
502 IrpMjStrings
[IoStackLocation
->MajorFunction
],
506 DEBUGNI(DL_FUN
, ("%s %s %S Unknown minor function %#x\n",
507 Ext2GetCurrentProcessName(),
508 IrpMjStrings
[IoStackLocation
->MajorFunction
],
510 IoStackLocation
->MinorFunction
516 case IRP_MJ_FILE_SYSTEM_CONTROL
:
518 if (IoStackLocation
->MinorFunction
== IRP_MN_USER_FS_REQUEST
) {
520 DEBUGNI(DL_FUN
, ( "%s %s %S IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
521 Ext2GetCurrentProcessName(),
522 IrpMjStrings
[IoStackLocation
->MajorFunction
],
524 IoStackLocation
->Parameters
.FileSystemControl
.FsControlCode
527 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
528 Ext2GetCurrentProcessName(),
529 IrpMjStrings
[IoStackLocation
->MajorFunction
],
531 ((PEXTENDED_IO_STACK_LOCATION
)
532 IoStackLocation
)->Parameters
.FileSystemControl
.FsControlCode
535 } else if (IoStackLocation
->MinorFunction
== IRP_MN_MOUNT_VOLUME
) {
536 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_MOUNT_VOLUME DeviceObject: %#x\n",
537 Ext2GetCurrentProcessName(),
538 IrpMjStrings
[IoStackLocation
->MajorFunction
],
540 IoStackLocation
->Parameters
.MountVolume
.DeviceObject
542 } else if (IoStackLocation
->MinorFunction
== IRP_MN_VERIFY_VOLUME
) {
543 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_VERIFY_VOLUME DeviceObject: %#x\n",
544 Ext2GetCurrentProcessName(),
545 IrpMjStrings
[IoStackLocation
->MajorFunction
],
547 IoStackLocation
->Parameters
.VerifyVolume
.DeviceObject
549 } else if (IoStackLocation
->MinorFunction
== IRP_MN_LOAD_FILE_SYSTEM
) {
550 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_LOAD_FILE_SYSTEM\n",
551 Ext2GetCurrentProcessName(),
552 IrpMjStrings
[IoStackLocation
->MajorFunction
],
556 #if (_WIN32_WINNT >= 0x0500)
557 else if (IoStackLocation
->MinorFunction
== IRP_MN_KERNEL_CALL
) {
558 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_KERNEL_CALL\n",
559 Ext2GetCurrentProcessName(),
560 IrpMjStrings
[IoStackLocation
->MajorFunction
],
564 #endif // (_WIN32_WINNT >= 0x0500)
566 DEBUGNI(DL_FUN
, ("%s %s %S Unknown minor function %#x\n",
567 Ext2GetCurrentProcessName(),
568 IrpMjStrings
[IoStackLocation
->MajorFunction
],
570 IoStackLocation
->MinorFunction
576 case IRP_MJ_DEVICE_CONTROL
:
578 DEBUGNI(DL_FUN
, ("%s %s %S IoControlCode: %#x\n",
579 Ext2GetCurrentProcessName(),
580 IrpMjStrings
[IoStackLocation
->MajorFunction
],
582 IoStackLocation
->Parameters
.DeviceIoControl
.IoControlCode
587 case IRP_MJ_LOCK_CONTROL
:
589 if (IoStackLocation
->MinorFunction
& IRP_MN_LOCK
) {
591 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n",
592 Ext2GetCurrentProcessName(),
593 IrpMjStrings
[IoStackLocation
->MajorFunction
],
595 IoStackLocation
->Parameters
.LockControl
.ByteOffset
.QuadPart
,
596 IoStackLocation
->Parameters
.LockControl
.Length
->QuadPart
,
597 IoStackLocation
->Parameters
.LockControl
.Key
,
598 (IoStackLocation
->Flags
& SL_FAIL_IMMEDIATELY
? "SL_FAIL_IMMEDIATELY " : ""),
599 (IoStackLocation
->Flags
& SL_EXCLUSIVE_LOCK
? "SL_EXCLUSIVE_LOCK " : "")
602 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_LOCK Offset: %I64xh Length: %I64xh Key: %u %s%s\n",
603 Ext2GetCurrentProcessName(),
604 IrpMjStrings
[IoStackLocation
->MajorFunction
],
606 ((PEXTENDED_IO_STACK_LOCATION
)
607 IoStackLocation
)->Parameters
.LockControl
.ByteOffset
.QuadPart
,
608 ((PEXTENDED_IO_STACK_LOCATION
)
609 IoStackLocation
)->Parameters
.LockControl
.Length
->QuadPart
,
610 ((PEXTENDED_IO_STACK_LOCATION
)
611 IoStackLocation
)->Parameters
.LockControl
.Key
,
612 (IoStackLocation
->Flags
& SL_FAIL_IMMEDIATELY
? "SL_FAIL_IMMEDIATELY " : ""),
613 (IoStackLocation
->Flags
& SL_EXCLUSIVE_LOCK
? "SL_EXCLUSIVE_LOCK " : "")
616 } else if (IoStackLocation
->MinorFunction
& IRP_MN_UNLOCK_SINGLE
) {
618 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n",
619 Ext2GetCurrentProcessName(),
620 IrpMjStrings
[IoStackLocation
->MajorFunction
],
622 IoStackLocation
->Parameters
.LockControl
.ByteOffset
.QuadPart
,
623 IoStackLocation
->Parameters
.LockControl
.Length
->QuadPart
,
624 IoStackLocation
->Parameters
.LockControl
.Key
627 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_UNLOCK_SINGLE Offset: %I64xh Length: %I64xh Key: %u\n",
628 Ext2GetCurrentProcessName(),
629 IrpMjStrings
[IoStackLocation
->MajorFunction
],
631 ((PEXTENDED_IO_STACK_LOCATION
)
632 IoStackLocation
)->Parameters
.LockControl
.ByteOffset
.QuadPart
,
633 ((PEXTENDED_IO_STACK_LOCATION
)
634 IoStackLocation
)->Parameters
.LockControl
.Length
->QuadPart
,
635 ((PEXTENDED_IO_STACK_LOCATION
)
636 IoStackLocation
)->Parameters
.LockControl
.Key
639 } else if (IoStackLocation
->MinorFunction
& IRP_MN_UNLOCK_ALL
) {
640 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_UNLOCK_ALL\n",
641 Ext2GetCurrentProcessName(),
642 IrpMjStrings
[IoStackLocation
->MajorFunction
],
645 } else if (IoStackLocation
->MinorFunction
& IRP_MN_UNLOCK_ALL_BY_KEY
) {
647 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n",
648 Ext2GetCurrentProcessName(),
649 IrpMjStrings
[IoStackLocation
->MajorFunction
],
651 IoStackLocation
->Parameters
.LockControl
.Key
654 DEBUGNI(DL_FUN
, ("%s %s %S IRP_MN_UNLOCK_ALL_BY_KEY Key: %u\n",
655 Ext2GetCurrentProcessName(),
656 IrpMjStrings
[IoStackLocation
->MajorFunction
],
658 ((PEXTENDED_IO_STACK_LOCATION
)
659 IoStackLocation
)->Parameters
.LockControl
.Key
663 DEBUGNI(DL_FUN
, ("%s %s %S Unknown minor function %#x\n",
664 Ext2GetCurrentProcessName(),
665 IrpMjStrings
[IoStackLocation
->MajorFunction
],
667 IoStackLocation
->MinorFunction
675 DEBUGNI(DL_FUN
, ("%s %s %S\n",
676 Ext2GetCurrentProcessName(),
677 IrpMjStrings
[IoStackLocation
->MajorFunction
],
683 case IRP_MJ_SHUTDOWN
:
685 DEBUGNI(DL_FUN
, ("%s %s %S\n",
686 Ext2GetCurrentProcessName(),
687 IrpMjStrings
[IoStackLocation
->MajorFunction
],
693 #if (_WIN32_WINNT >= 0x0500)
696 DEBUGNI(DL_FUN
, ( "%s %s %S\n",
697 Ext2GetCurrentProcessName(),
698 IrpMjStrings
[IoStackLocation
->MajorFunction
],
702 #endif // (_WIN32_WINNT >= 0x0500)
706 DEBUGNI(DL_FUN
, ("%s %s %S\n",
707 Ext2GetCurrentProcessName(),
708 IrpMjStrings
[IoStackLocation
->MajorFunction
],
715 Ext2DbgPrintComplete (IN PIRP Irp
, IN BOOLEAN bPrint
)
717 PIO_STACK_LOCATION IoStackLocation
;
722 if (Irp
->IoStatus
.Status
!= STATUS_SUCCESS
) {
724 IoStackLocation
= IoGetCurrentIrpStackLocation(Irp
);
727 DEBUGNI(DL_FUN
, ("%s %s Status: %s (%#x).\n",
728 Ext2GetCurrentProcessName(),
729 IrpMjStrings
[IoStackLocation
->MajorFunction
],
730 Ext2NtStatusToString(Irp
->IoStatus
.Status
),
738 Ext2NtStatusToString ( IN NTSTATUS Status
)
743 return "STATUS_SUCCESS";
745 return "STATUS_WAIT_1";
747 return "STATUS_WAIT_2";
749 return "STATUS_WAIT_3";
751 return "STATUS_WAIT_63";
753 return "STATUS_ABANDONED_WAIT_0";
755 return "STATUS_ABANDONED_WAIT_63";
757 return "STATUS_USER_APC";
759 return "STATUS_KERNEL_APC";
761 return "STATUS_ALERTED";
763 return "STATUS_TIMEOUT";
765 return "STATUS_PENDING";
767 return "STATUS_REPARSE";
769 return "STATUS_MORE_ENTRIES";
771 return "STATUS_NOT_ALL_ASSIGNED";
773 return "STATUS_SOME_NOT_MAPPED";
775 return "STATUS_OPLOCK_BREAK_IN_PROGRESS";
777 return "STATUS_VOLUME_MOUNTED";
779 return "STATUS_RXACT_COMMITTED";
781 return "STATUS_NOTIFY_CLEANUP";
783 return "STATUS_NOTIFY_ENUM_DIR";
785 return "STATUS_NO_QUOTAS_FOR_ACCOUNT";
787 return "STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED";
789 return "STATUS_PAGE_FAULT_TRANSITION";
791 return "STATUS_PAGE_FAULT_DEMAND_ZERO";
793 return "STATUS_PAGE_FAULT_COPY_ON_WRITE";
795 return "STATUS_PAGE_FAULT_GUARD_PAGE";
797 return "STATUS_PAGE_FAULT_PAGING_FILE";
799 return "STATUS_CACHE_PAGE_LOCKED";
801 return "STATUS_CRASH_DUMP";
803 return "STATUS_BUFFER_ALL_ZEROS";
805 return "STATUS_REPARSE_OBJECT";
807 return "STATUS_RESOURCE_REQUIREMENTS_CHANGED";
809 return "STATUS_TRANSLATION_COMPLETE";
811 return "STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY";
813 return "DBG_EXCEPTION_HANDLED";
815 return "DBG_CONTINUE";
817 return "STATUS_OBJECT_NAME_EXISTS";
819 return "STATUS_THREAD_WAS_SUSPENDED";
821 return "STATUS_WORKING_SET_LIMIT_RANGE";
823 return "STATUS_IMAGE_NOT_AT_BASE";
825 return "STATUS_RXACT_STATE_CREATED";
827 return "STATUS_SEGMENT_NOTIFICATION";
829 return "STATUS_LOCAL_USER_SESSION_KEY";
831 return "STATUS_BAD_CURRENT_DIRECTORY";
833 return "STATUS_SERIAL_MORE_WRITES";
835 return "STATUS_REGISTRY_RECOVERED";
837 return "STATUS_FT_READ_RECOVERY_FROM_BACKUP";
839 return "STATUS_FT_WRITE_RECOVERY";
841 return "STATUS_SERIAL_COUNTER_TIMEOUT";
843 return "STATUS_NULL_LM_PASSWORD";
845 return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH";
847 return "STATUS_RECEIVE_PARTIAL";
849 return "STATUS_RECEIVE_EXPEDITED";
851 return "STATUS_RECEIVE_PARTIAL_EXPEDITED";
853 return "STATUS_EVENT_DONE";
855 return "STATUS_EVENT_PENDING";
857 return "STATUS_CHECKING_FILE_SYSTEM";
859 return "STATUS_FATAL_APP_EXIT";
861 return "STATUS_PREDEFINED_HANDLE";
863 return "STATUS_WAS_UNLOCKED";
865 return "STATUS_SERVICE_NOTIFICATION";
867 return "STATUS_WAS_LOCKED";
869 return "STATUS_LOG_HARD_ERROR";
871 return "STATUS_ALREADY_WIN32";
873 return "STATUS_WX86_UNSIMULATE";
875 return "STATUS_WX86_CONTINUE";
877 return "STATUS_WX86_SINGLE_STEP";
879 return "STATUS_WX86_BREAKPOINT";
881 return "STATUS_WX86_EXCEPTION_CONTINUE";
883 return "STATUS_WX86_EXCEPTION_LASTCHANCE";
885 return "STATUS_WX86_EXCEPTION_CHAIN";
887 return "STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE";
889 return "STATUS_NO_YIELD_PERFORMED";
891 return "STATUS_TIMER_RESUME_IGNORED";
893 return "STATUS_ARBITRATION_UNHANDLED";
895 return "STATUS_CARDBUS_NOT_SUPPORTED";
897 return "STATUS_WX86_CREATEWX86TIB";
899 return "STATUS_MP_PROCESSOR_MISMATCH";
901 return "DBG_REPLY_LATER";
903 return "DBG_UNABLE_TO_PROVIDE_HANDLE";
905 return "DBG_TERMINATE_THREAD";
907 return "DBG_TERMINATE_PROCESS";
909 return "DBG_CONTROL_C";
911 return "DBG_PRINTEXCEPTION_C";
913 return "DBG_RIPEXCEPTION";
915 return "DBG_CONTROL_BREAK";
917 return "STATUS_GUARD_PAGE_VIOLATION";
919 return "STATUS_DATATYPE_MISALIGNMENT";
921 return "STATUS_BREAKPOINT";
923 return "STATUS_SINGLE_STEP";
925 return "STATUS_BUFFER_OVERFLOW";
927 return "STATUS_NO_MORE_FILES";
929 return "STATUS_WAKE_SYSTEM_DEBUGGER";
931 return "STATUS_HANDLES_CLOSED";
933 return "STATUS_NO_INHERITANCE";
935 return "STATUS_GUID_SUBSTITUTION_MADE";
937 return "STATUS_PARTIAL_COPY";
939 return "STATUS_DEVICE_PAPER_EMPTY";
941 return "STATUS_DEVICE_POWERED_OFF";
943 return "STATUS_DEVICE_OFF_LINE";
945 return "STATUS_DEVICE_BUSY";
947 return "STATUS_NO_MORE_EAS";
949 return "STATUS_INVALID_EA_NAME";
951 return "STATUS_EA_LIST_INCONSISTENT";
953 return "STATUS_INVALID_EA_FLAG";
955 return "STATUS_VERIFY_REQUIRED";
957 return "STATUS_EXTRANEOUS_INFORMATION";
959 return "STATUS_RXACT_COMMIT_NECESSARY";
961 return "STATUS_NO_MORE_ENTRIES";
963 return "STATUS_FILEMARK_DETECTED";
965 return "STATUS_MEDIA_CHANGED";
967 return "STATUS_BUS_RESET";
969 return "STATUS_END_OF_MEDIA";
971 return "STATUS_BEGINNING_OF_MEDIA";
973 return "STATUS_MEDIA_CHECK";
975 return "STATUS_SETMARK_DETECTED";
977 return "STATUS_NO_DATA_DETECTED";
979 return "STATUS_REDIRECTOR_HAS_OPEN_HANDLES";
981 return "STATUS_SERVER_HAS_OPEN_HANDLES";
983 return "STATUS_ALREADY_DISCONNECTED";
985 return "STATUS_LONGJUMP";
987 return "DBG_EXCEPTION_NOT_HANDLED";
989 return "STATUS_UNSUCCESSFUL";
991 return "STATUS_NOT_IMPLEMENTED";
993 return "STATUS_INVALID_INFO_CLASS";
995 return "STATUS_INFO_LENGTH_MISMATCH";
997 return "STATUS_ACCESS_VIOLATION";
999 return "STATUS_IN_PAGE_ERROR";
1001 return "STATUS_PAGEFILE_QUOTA";
1003 return "STATUS_INVALID_HANDLE";
1005 return "STATUS_BAD_INITIAL_STACK";
1007 return "STATUS_BAD_INITIAL_PC";
1009 return "STATUS_INVALID_CID";
1011 return "STATUS_TIMER_NOT_CANCELED";
1013 return "STATUS_INVALID_PARAMETER";
1015 return "STATUS_NO_SUCH_DEVICE";
1017 return "STATUS_NO_SUCH_FILE";
1019 return "STATUS_INVALID_DEVICE_REQUEST";
1021 return "STATUS_END_OF_FILE";
1023 return "STATUS_WRONG_VOLUME";
1025 return "STATUS_NO_MEDIA_IN_DEVICE";
1027 return "STATUS_UNRECOGNIZED_MEDIA";
1029 return "STATUS_NONEXISTENT_SECTOR";
1031 return "STATUS_MORE_PROCESSING_REQUIRED";
1033 return "STATUS_NO_MEMORY";
1035 return "STATUS_CONFLICTING_ADDRESSES";
1037 return "STATUS_NOT_MAPPED_VIEW";
1039 return "STATUS_UNABLE_TO_FREE_VM";
1041 return "STATUS_UNABLE_TO_DELETE_SECTION";
1043 return "STATUS_INVALID_SYSTEM_SERVICE";
1045 return "STATUS_ILLEGAL_INSTRUCTION";
1047 return "STATUS_INVALID_LOCK_SEQUENCE";
1049 return "STATUS_INVALID_VIEW_SIZE";
1051 return "STATUS_INVALID_FILE_FOR_SECTION";
1053 return "STATUS_ALREADY_COMMITTED";
1055 return "STATUS_ACCESS_DENIED";
1057 return "STATUS_BUFFER_TOO_SMALL";
1059 return "STATUS_OBJECT_TYPE_MISMATCH";
1061 return "STATUS_NONCONTINUABLE_EXCEPTION";
1063 return "STATUS_INVALID_DISPOSITION";
1065 return "STATUS_UNWIND";
1067 return "STATUS_BAD_STACK";
1069 return "STATUS_INVALID_UNWIND_TARGET";
1071 return "STATUS_NOT_LOCKED";
1073 return "STATUS_PARITY_ERROR";
1075 return "STATUS_UNABLE_TO_DECOMMIT_VM";
1077 return "STATUS_NOT_COMMITTED";
1079 return "STATUS_INVALID_PORT_ATTRIBUTES";
1081 return "STATUS_PORT_MESSAGE_TOO_LONG";
1083 return "STATUS_INVALID_PARAMETER_MIX";
1085 return "STATUS_INVALID_QUOTA_LOWER";
1087 return "STATUS_DISK_CORRUPT_ERROR";
1089 return "STATUS_OBJECT_NAME_INVALID";
1091 return "STATUS_OBJECT_NAME_NOT_FOUND";
1093 return "STATUS_OBJECT_NAME_COLLISION";
1095 return "STATUS_PORT_DISCONNECTED";
1097 return "STATUS_DEVICE_ALREADY_ATTACHED";
1099 return "STATUS_OBJECT_PATH_INVALID";
1101 return "STATUS_OBJECT_PATH_NOT_FOUND";
1103 return "STATUS_OBJECT_PATH_SYNTAX_BAD";
1105 return "STATUS_DATA_OVERRUN";
1107 return "STATUS_DATA_LATE_ERROR";
1109 return "STATUS_DATA_ERROR";
1111 return "STATUS_CRC_ERROR";
1113 return "STATUS_SECTION_TOO_BIG";
1115 return "STATUS_PORT_CONNECTION_REFUSED";
1117 return "STATUS_INVALID_PORT_HANDLE";
1119 return "STATUS_SHARING_VIOLATION";
1121 return "STATUS_QUOTA_EXCEEDED";
1123 return "STATUS_INVALID_PAGE_PROTECTION";
1125 return "STATUS_MUTANT_NOT_OWNED";
1127 return "STATUS_SEMAPHORE_LIMIT_EXCEEDED";
1129 return "STATUS_PORT_ALREADY_SET";
1131 return "STATUS_SECTION_NOT_IMAGE";
1133 return "STATUS_SUSPEND_COUNT_EXCEEDED";
1135 return "STATUS_THREAD_IS_TERMINATING";
1137 return "STATUS_BAD_WORKING_SET_LIMIT";
1139 return "STATUS_INCOMPATIBLE_FILE_MAP";
1141 return "STATUS_SECTION_PROTECTION";
1143 return "STATUS_EAS_NOT_SUPPORTED";
1145 return "STATUS_EA_TOO_LARGE";
1147 return "STATUS_NONEXISTENT_EA_ENTRY";
1149 return "STATUS_NO_EAS_ON_FILE";
1151 return "STATUS_EA_CORRUPT_ERROR";
1153 return "STATUS_FILE_LOCK_CONFLICT";
1155 return "STATUS_LOCK_NOT_GRANTED";
1157 return "STATUS_DELETE_PENDING";
1159 return "STATUS_CTL_FILE_NOT_SUPPORTED";
1161 return "STATUS_UNKNOWN_REVISION";
1163 return "STATUS_REVISION_MISMATCH";
1165 return "STATUS_INVALID_OWNER";
1167 return "STATUS_INVALID_PRIMARY_GROUP";
1169 return "STATUS_NO_IMPERSONATION_TOKEN";
1171 return "STATUS_CANT_DISABLE_MANDATORY";
1173 return "STATUS_NO_LOGON_SERVERS";
1175 return "STATUS_NO_SUCH_LOGON_SESSION";
1177 return "STATUS_NO_SUCH_PRIVILEGE";
1179 return "STATUS_PRIVILEGE_NOT_HELD";
1181 return "STATUS_INVALID_ACCOUNT_NAME";
1183 return "STATUS_USER_EXISTS";
1185 return "STATUS_NO_SUCH_USER";
1187 return "STATUS_GROUP_EXISTS";
1189 return "STATUS_NO_SUCH_GROUP";
1191 return "STATUS_MEMBER_IN_GROUP";
1193 return "STATUS_MEMBER_NOT_IN_GROUP";
1195 return "STATUS_LAST_ADMIN";
1197 return "STATUS_WRONG_PASSWORD";
1199 return "STATUS_ILL_FORMED_PASSWORD";
1201 return "STATUS_PASSWORD_RESTRICTION";
1203 return "STATUS_LOGON_FAILURE";
1205 return "STATUS_ACCOUNT_RESTRICTION";
1207 return "STATUS_INVALID_LOGON_HOURS";
1209 return "STATUS_INVALID_WORKSTATION";
1211 return "STATUS_PASSWORD_EXPIRED";
1213 return "STATUS_ACCOUNT_DISABLED";
1215 return "STATUS_NONE_MAPPED";
1217 return "STATUS_TOO_MANY_LUIDS_REQUESTED";
1219 return "STATUS_LUIDS_EXHAUSTED";
1221 return "STATUS_INVALID_SUB_AUTHORITY";
1223 return "STATUS_INVALID_ACL";
1225 return "STATUS_INVALID_SID";
1227 return "STATUS_INVALID_SECURITY_DESCR";
1229 return "STATUS_PROCEDURE_NOT_FOUND";
1231 return "STATUS_INVALID_IMAGE_FORMAT";
1233 return "STATUS_NO_TOKEN";
1235 return "STATUS_BAD_INHERITANCE_ACL";
1237 return "STATUS_RANGE_NOT_LOCKED";
1239 return "STATUS_DISK_FULL";
1241 return "STATUS_SERVER_DISABLED";
1243 return "STATUS_SERVER_NOT_DISABLED";
1245 return "STATUS_TOO_MANY_GUIDS_REQUESTED";
1247 return "STATUS_GUIDS_EXHAUSTED";
1249 return "STATUS_INVALID_ID_AUTHORITY";
1251 return "STATUS_AGENTS_EXHAUSTED";
1253 return "STATUS_INVALID_VOLUME_LABEL";
1255 return "STATUS_SECTION_NOT_EXTENDED";
1257 return "STATUS_NOT_MAPPED_DATA";
1259 return "STATUS_RESOURCE_DATA_NOT_FOUND";
1261 return "STATUS_RESOURCE_TYPE_NOT_FOUND";
1263 return "STATUS_RESOURCE_NAME_NOT_FOUND";
1265 return "STATUS_ARRAY_BOUNDS_EXCEEDED";
1267 return "STATUS_FLOAT_DENORMAL_OPERAND";
1269 return "STATUS_FLOAT_DIVIDE_BY_ZERO";
1271 return "STATUS_FLOAT_INEXACT_RESULT";
1273 return "STATUS_FLOAT_INVALID_OPERATION";
1275 return "STATUS_FLOAT_OVERFLOW";
1277 return "STATUS_FLOAT_STACK_CHECK";
1279 return "STATUS_FLOAT_UNDERFLOW";
1281 return "STATUS_INTEGER_DIVIDE_BY_ZERO";
1283 return "STATUS_INTEGER_OVERFLOW";
1285 return "STATUS_PRIVILEGED_INSTRUCTION";
1287 return "STATUS_TOO_MANY_PAGING_FILES";
1289 return "STATUS_FILE_INVALID";
1291 return "STATUS_ALLOTTED_SPACE_EXCEEDED";
1293 return "STATUS_INSUFFICIENT_RESOURCES";
1295 return "STATUS_DFS_EXIT_PATH_FOUND";
1297 return "STATUS_DEVICE_DATA_ERROR";
1299 return "STATUS_DEVICE_NOT_CONNECTED";
1301 return "STATUS_DEVICE_POWER_FAILURE";
1303 return "STATUS_FREE_VM_NOT_AT_BASE";
1305 return "STATUS_MEMORY_NOT_ALLOCATED";
1307 return "STATUS_WORKING_SET_QUOTA";
1309 return "STATUS_MEDIA_WRITE_PROTECTED";
1311 return "STATUS_DEVICE_NOT_READY";
1313 return "STATUS_INVALID_GROUP_ATTRIBUTES";
1315 return "STATUS_BAD_IMPERSONATION_LEVEL";
1317 return "STATUS_CANT_OPEN_ANONYMOUS";
1319 return "STATUS_BAD_VALIDATION_CLASS";
1321 return "STATUS_BAD_TOKEN_TYPE";
1323 return "STATUS_BAD_MASTER_BOOT_RECORD";
1325 return "STATUS_INSTRUCTION_MISALIGNMENT";
1327 return "STATUS_INSTANCE_NOT_AVAILABLE";
1329 return "STATUS_PIPE_NOT_AVAILABLE";
1331 return "STATUS_INVALID_PIPE_STATE";
1333 return "STATUS_PIPE_BUSY";
1335 return "STATUS_ILLEGAL_FUNCTION";
1337 return "STATUS_PIPE_DISCONNECTED";
1339 return "STATUS_PIPE_CLOSING";
1341 return "STATUS_PIPE_CONNECTED";
1343 return "STATUS_PIPE_LISTENING";
1345 return "STATUS_INVALID_READ_MODE";
1347 return "STATUS_IO_TIMEOUT";
1349 return "STATUS_FILE_FORCED_CLOSED";
1351 return "STATUS_PROFILING_NOT_STARTED";
1353 return "STATUS_PROFILING_NOT_STOPPED";
1355 return "STATUS_COULD_NOT_INTERPRET";
1357 return "STATUS_FILE_IS_A_DIRECTORY";
1359 return "STATUS_NOT_SUPPORTED";
1361 return "STATUS_REMOTE_NOT_LISTENING";
1363 return "STATUS_DUPLICATE_NAME";
1365 return "STATUS_BAD_NETWORK_PATH";
1367 return "STATUS_NETWORK_BUSY";
1369 return "STATUS_DEVICE_DOES_NOT_EXIST";
1371 return "STATUS_TOO_MANY_COMMANDS";
1373 return "STATUS_ADAPTER_HARDWARE_ERROR";
1375 return "STATUS_INVALID_NETWORK_RESPONSE";
1377 return "STATUS_UNEXPECTED_NETWORK_ERROR";
1379 return "STATUS_BAD_REMOTE_ADAPTER";
1381 return "STATUS_PRINT_QUEUE_FULL";
1383 return "STATUS_NO_SPOOL_SPACE";
1385 return "STATUS_PRINT_CANCELLED";
1387 return "STATUS_NETWORK_NAME_DELETED";
1389 return "STATUS_NETWORK_ACCESS_DENIED";
1391 return "STATUS_BAD_DEVICE_TYPE";
1393 return "STATUS_BAD_NETWORK_NAME";
1395 return "STATUS_TOO_MANY_NAMES";
1397 return "STATUS_TOO_MANY_SESSIONS";
1399 return "STATUS_SHARING_PAUSED";
1401 return "STATUS_REQUEST_NOT_ACCEPTED";
1403 return "STATUS_REDIRECTOR_PAUSED";
1405 return "STATUS_NET_WRITE_FAULT";
1407 return "STATUS_PROFILING_AT_LIMIT";
1409 return "STATUS_NOT_SAME_DEVICE";
1411 return "STATUS_FILE_RENAMED";
1413 return "STATUS_VIRTUAL_CIRCUIT_CLOSED";
1415 return "STATUS_NO_SECURITY_ON_OBJECT";
1417 return "STATUS_CANT_WAIT";
1419 return "STATUS_PIPE_EMPTY";
1421 return "STATUS_CANT_ACCESS_DOMAIN_INFO";
1423 return "STATUS_CANT_TERMINATE_SELF";
1425 return "STATUS_INVALID_SERVER_STATE";
1427 return "STATUS_INVALID_DOMAIN_STATE";
1429 return "STATUS_INVALID_DOMAIN_ROLE";
1431 return "STATUS_NO_SUCH_DOMAIN";
1433 return "STATUS_DOMAIN_EXISTS";
1435 return "STATUS_DOMAIN_LIMIT_EXCEEDED";
1437 return "STATUS_OPLOCK_NOT_GRANTED";
1439 return "STATUS_INVALID_OPLOCK_PROTOCOL";
1441 return "STATUS_INTERNAL_DB_CORRUPTION";
1443 return "STATUS_INTERNAL_ERROR";
1445 return "STATUS_GENERIC_NOT_MAPPED";
1447 return "STATUS_BAD_DESCRIPTOR_FORMAT";
1449 return "STATUS_INVALID_USER_BUFFER";
1451 return "STATUS_UNEXPECTED_IO_ERROR";
1453 return "STATUS_UNEXPECTED_MM_CREATE_ERR";
1455 return "STATUS_UNEXPECTED_MM_MAP_ERROR";
1457 return "STATUS_UNEXPECTED_MM_EXTEND_ERR";
1459 return "STATUS_NOT_LOGON_PROCESS";
1461 return "STATUS_LOGON_SESSION_EXISTS";
1463 return "STATUS_INVALID_PARAMETER_1";
1465 return "STATUS_INVALID_PARAMETER_2";
1467 return "STATUS_INVALID_PARAMETER_3";
1469 return "STATUS_INVALID_PARAMETER_4";
1471 return "STATUS_INVALID_PARAMETER_5";
1473 return "STATUS_INVALID_PARAMETER_6";
1475 return "STATUS_INVALID_PARAMETER_7";
1477 return "STATUS_INVALID_PARAMETER_8";
1479 return "STATUS_INVALID_PARAMETER_9";
1481 return "STATUS_INVALID_PARAMETER_10";
1483 return "STATUS_INVALID_PARAMETER_11";
1485 return "STATUS_INVALID_PARAMETER_12";
1487 return "STATUS_REDIRECTOR_NOT_STARTED";
1489 return "STATUS_REDIRECTOR_STARTED";
1491 return "STATUS_STACK_OVERFLOW";
1493 return "STATUS_NO_SUCH_PACKAGE";
1495 return "STATUS_BAD_FUNCTION_TABLE";
1497 return "STATUS_VARIABLE_NOT_FOUND";
1499 return "STATUS_DIRECTORY_NOT_EMPTY";
1501 return "STATUS_FILE_CORRUPT_ERROR";
1503 return "STATUS_NOT_A_DIRECTORY";
1505 return "STATUS_BAD_LOGON_SESSION_STATE";
1507 return "STATUS_LOGON_SESSION_COLLISION";
1509 return "STATUS_NAME_TOO_LONG";
1511 return "STATUS_FILES_OPEN";
1513 return "STATUS_CONNECTION_IN_USE";
1515 return "STATUS_MESSAGE_NOT_FOUND";
1517 return "STATUS_PROCESS_IS_TERMINATING";
1519 return "STATUS_INVALID_LOGON_TYPE";
1521 return "STATUS_NO_GUID_TRANSLATION";
1523 return "STATUS_CANNOT_IMPERSONATE";
1525 return "STATUS_IMAGE_ALREADY_LOADED";
1527 return "STATUS_ABIOS_NOT_PRESENT";
1529 return "STATUS_ABIOS_LID_NOT_EXIST";
1531 return "STATUS_ABIOS_LID_ALREADY_OWNED";
1533 return "STATUS_ABIOS_NOT_LID_OWNER";
1535 return "STATUS_ABIOS_INVALID_COMMAND";
1537 return "STATUS_ABIOS_INVALID_LID";
1539 return "STATUS_ABIOS_SELECTOR_NOT_AVAILABLE";
1541 return "STATUS_ABIOS_INVALID_SELECTOR";
1543 return "STATUS_NO_LDT";
1545 return "STATUS_INVALID_LDT_SIZE";
1547 return "STATUS_INVALID_LDT_OFFSET";
1549 return "STATUS_INVALID_LDT_DESCRIPTOR";
1551 return "STATUS_INVALID_IMAGE_NE_FORMAT";
1553 return "STATUS_RXACT_INVALID_STATE";
1555 return "STATUS_RXACT_COMMIT_FAILURE";
1557 return "STATUS_MAPPED_FILE_SIZE_ZERO";
1559 return "STATUS_TOO_MANY_OPENED_FILES";
1561 return "STATUS_CANCELLED";
1563 return "STATUS_CANNOT_DELETE";
1565 return "STATUS_INVALID_COMPUTER_NAME";
1567 return "STATUS_FILE_DELETED";
1569 return "STATUS_SPECIAL_ACCOUNT";
1571 return "STATUS_SPECIAL_GROUP";
1573 return "STATUS_SPECIAL_USER";
1575 return "STATUS_MEMBERS_PRIMARY_GROUP";
1577 return "STATUS_FILE_CLOSED";
1579 return "STATUS_TOO_MANY_THREADS";
1581 return "STATUS_THREAD_NOT_IN_PROCESS";
1583 return "STATUS_TOKEN_ALREADY_IN_USE";
1585 return "STATUS_PAGEFILE_QUOTA_EXCEEDED";
1587 return "STATUS_COMMITMENT_LIMIT";
1589 return "STATUS_INVALID_IMAGE_LE_FORMAT";
1591 return "STATUS_INVALID_IMAGE_NOT_MZ";
1593 return "STATUS_INVALID_IMAGE_PROTECT";
1595 return "STATUS_INVALID_IMAGE_WIN_16";
1597 return "STATUS_LOGON_SERVER_CONFLICT";
1599 return "STATUS_TIME_DIFFERENCE_AT_DC";
1601 return "STATUS_SYNCHRONIZATION_REQUIRED";
1603 return "STATUS_DLL_NOT_FOUND";
1605 return "STATUS_OPEN_FAILED";
1607 return "STATUS_IO_PRIVILEGE_FAILED";
1609 return "STATUS_ORDINAL_NOT_FOUND";
1611 return "STATUS_ENTRYPOINT_NOT_FOUND";
1613 return "STATUS_CONTROL_C_EXIT";
1615 return "STATUS_LOCAL_DISCONNECT";
1617 return "STATUS_REMOTE_DISCONNECT";
1619 return "STATUS_REMOTE_RESOURCES";
1621 return "STATUS_LINK_FAILED";
1623 return "STATUS_LINK_TIMEOUT";
1625 return "STATUS_INVALID_CONNECTION";
1627 return "STATUS_INVALID_ADDRESS";
1629 return "STATUS_DLL_INIT_FAILED";
1631 return "STATUS_MISSING_SYSTEMFILE";
1633 return "STATUS_UNHANDLED_EXCEPTION";
1635 return "STATUS_APP_INIT_FAILURE";
1637 return "STATUS_PAGEFILE_CREATE_FAILED";
1639 return "STATUS_NO_PAGEFILE";
1641 return "STATUS_INVALID_LEVEL";
1643 return "STATUS_WRONG_PASSWORD_CORE";
1645 return "STATUS_ILLEGAL_FLOAT_CONTEXT";
1647 return "STATUS_PIPE_BROKEN";
1649 return "STATUS_REGISTRY_CORRUPT";
1651 return "STATUS_REGISTRY_IO_FAILED";
1653 return "STATUS_NO_EVENT_PAIR";
1655 return "STATUS_UNRECOGNIZED_VOLUME";
1657 return "STATUS_SERIAL_NO_DEVICE_INITED";
1659 return "STATUS_NO_SUCH_ALIAS";
1661 return "STATUS_MEMBER_NOT_IN_ALIAS";
1663 return "STATUS_MEMBER_IN_ALIAS";
1665 return "STATUS_ALIAS_EXISTS";
1667 return "STATUS_LOGON_NOT_GRANTED";
1669 return "STATUS_TOO_MANY_SECRETS";
1671 return "STATUS_SECRET_TOO_LONG";
1673 return "STATUS_INTERNAL_DB_ERROR";
1675 return "STATUS_FULLSCREEN_MODE";
1677 return "STATUS_TOO_MANY_CONTEXT_IDS";
1679 return "STATUS_LOGON_TYPE_NOT_GRANTED";
1681 return "STATUS_NOT_REGISTRY_FILE";
1683 return "STATUS_NT_CROSS_ENCRYPTION_REQUIRED";
1685 return "STATUS_DOMAIN_CTRLR_CONFIG_ERROR";
1687 return "STATUS_FT_MISSING_MEMBER";
1689 return "STATUS_ILL_FORMED_SERVICE_ENTRY";
1691 return "STATUS_ILLEGAL_CHARACTER";
1693 return "STATUS_UNMAPPABLE_CHARACTER";
1695 return "STATUS_UNDEFINED_CHARACTER";
1697 return "STATUS_FLOPPY_VOLUME";
1699 return "STATUS_FLOPPY_ID_MARK_NOT_FOUND";
1701 return "STATUS_FLOPPY_WRONG_CYLINDER";
1703 return "STATUS_FLOPPY_UNKNOWN_ERROR";
1705 return "STATUS_FLOPPY_BAD_REGISTERS";
1707 return "STATUS_DISK_RECALIBRATE_FAILED";
1709 return "STATUS_DISK_OPERATION_FAILED";
1711 return "STATUS_DISK_RESET_FAILED";
1713 return "STATUS_SHARED_IRQ_BUSY";
1715 return "STATUS_FT_ORPHANING";
1717 return "STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT";
1719 return "STATUS_PARTITION_FAILURE";
1721 return "STATUS_INVALID_BLOCK_LENGTH";
1723 return "STATUS_DEVICE_NOT_PARTITIONED";
1725 return "STATUS_UNABLE_TO_LOCK_MEDIA";
1727 return "STATUS_UNABLE_TO_UNLOAD_MEDIA";
1729 return "STATUS_EOM_OVERFLOW";
1731 return "STATUS_NO_MEDIA";
1733 return "STATUS_NO_SUCH_MEMBER";
1735 return "STATUS_INVALID_MEMBER";
1737 return "STATUS_KEY_DELETED";
1739 return "STATUS_NO_LOG_SPACE";
1741 return "STATUS_TOO_MANY_SIDS";
1743 return "STATUS_LM_CROSS_ENCRYPTION_REQUIRED";
1745 return "STATUS_KEY_HAS_CHILDREN";
1747 return "STATUS_CHILD_MUST_BE_VOLATILE";
1749 return "STATUS_DEVICE_CONFIGURATION_ERROR";
1751 return "STATUS_DRIVER_INTERNAL_ERROR";
1753 return "STATUS_INVALID_DEVICE_STATE";
1755 return "STATUS_IO_DEVICE_ERROR";
1757 return "STATUS_DEVICE_PROTOCOL_ERROR";
1759 return "STATUS_BACKUP_CONTROLLER";
1761 return "STATUS_LOG_FILE_FULL";
1763 return "STATUS_TOO_LATE";
1765 return "STATUS_NO_TRUST_LSA_SECRET";
1767 return "STATUS_NO_TRUST_SAM_ACCOUNT";
1769 return "STATUS_TRUSTED_DOMAIN_FAILURE";
1771 return "STATUS_TRUSTED_RELATIONSHIP_FAILURE";
1773 return "STATUS_EVENTLOG_FILE_CORRUPT";
1775 return "STATUS_EVENTLOG_CANT_START";
1777 return "STATUS_TRUST_FAILURE";
1779 return "STATUS_MUTANT_LIMIT_EXCEEDED";
1781 return "STATUS_NETLOGON_NOT_STARTED";
1783 return "STATUS_ACCOUNT_EXPIRED";
1785 return "STATUS_POSSIBLE_DEADLOCK";
1787 return "STATUS_NETWORK_CREDENTIAL_CONFLICT";
1789 return "STATUS_REMOTE_SESSION_LIMIT";
1791 return "STATUS_EVENTLOG_FILE_CHANGED";
1793 return "STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT";
1795 return "STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT";
1797 return "STATUS_NOLOGON_SERVER_TRUST_ACCOUNT";
1799 return "STATUS_DOMAIN_TRUST_INCONSISTENT";
1801 return "STATUS_FS_DRIVER_REQUIRED";
1803 return "STATUS_NO_USER_SESSION_KEY";
1805 return "STATUS_USER_SESSION_DELETED";
1807 return "STATUS_RESOURCE_LANG_NOT_FOUND";
1809 return "STATUS_INSUFF_SERVER_RESOURCES";
1811 return "STATUS_INVALID_BUFFER_SIZE";
1813 return "STATUS_INVALID_ADDRESS_COMPONENT";
1815 return "STATUS_INVALID_ADDRESS_WILDCARD";
1817 return "STATUS_TOO_MANY_ADDRESSES";
1819 return "STATUS_ADDRESS_ALREADY_EXISTS";
1821 return "STATUS_ADDRESS_CLOSED";
1823 return "STATUS_CONNECTION_DISCONNECTED";
1825 return "STATUS_CONNECTION_RESET";
1827 return "STATUS_TOO_MANY_NODES";
1829 return "STATUS_TRANSACTION_ABORTED";
1831 return "STATUS_TRANSACTION_TIMED_OUT";
1833 return "STATUS_TRANSACTION_NO_RELEASE";
1835 return "STATUS_TRANSACTION_NO_MATCH";
1837 return "STATUS_TRANSACTION_RESPONDED";
1839 return "STATUS_TRANSACTION_INVALID_ID";
1841 return "STATUS_TRANSACTION_INVALID_TYPE";
1843 return "STATUS_NOT_SERVER_SESSION";
1845 return "STATUS_NOT_CLIENT_SESSION";
1847 return "STATUS_CANNOT_LOAD_REGISTRY_FILE";
1849 return "STATUS_DEBUG_ATTACH_FAILED";
1851 return "STATUS_SYSTEM_PROCESS_TERMINATED";
1853 return "STATUS_DATA_NOT_ACCEPTED";
1855 return "STATUS_NO_BROWSER_SERVERS_FOUND";
1857 return "STATUS_VDM_HARD_ERROR";
1859 return "STATUS_DRIVER_CANCEL_TIMEOUT";
1861 return "STATUS_REPLY_MESSAGE_MISMATCH";
1863 return "STATUS_MAPPED_ALIGNMENT";
1865 return "STATUS_IMAGE_CHECKSUM_MISMATCH";
1867 return "STATUS_LOST_WRITEBEHIND_DATA";
1869 return "STATUS_CLIENT_SERVER_PARAMETERS_INVALID";
1871 return "STATUS_PASSWORD_MUST_CHANGE";
1873 return "STATUS_NOT_FOUND";
1875 return "STATUS_NOT_TINY_STREAM";
1877 return "STATUS_RECOVERY_FAILURE";
1879 return "STATUS_STACK_OVERFLOW_READ";
1881 return "STATUS_FAIL_CHECK";
1883 return "STATUS_DUPLICATE_OBJECTID";
1885 return "STATUS_OBJECTID_EXISTS";
1887 return "STATUS_CONVERT_TO_LARGE";
1889 return "STATUS_RETRY";
1891 return "STATUS_FOUND_OUT_OF_SCOPE";
1893 return "STATUS_ALLOCATE_BUCKET";
1895 return "STATUS_PROPSET_NOT_FOUND";
1897 return "STATUS_MARSHALL_OVERFLOW";
1899 return "STATUS_INVALID_VARIANT";
1901 return "STATUS_DOMAIN_CONTROLLER_NOT_FOUND";
1903 return "STATUS_ACCOUNT_LOCKED_OUT";
1905 return "STATUS_HANDLE_NOT_CLOSABLE";
1907 return "STATUS_CONNECTION_REFUSED";
1909 return "STATUS_GRACEFUL_DISCONNECT";
1911 return "STATUS_ADDRESS_ALREADY_ASSOCIATED";
1913 return "STATUS_ADDRESS_NOT_ASSOCIATED";
1915 return "STATUS_CONNECTION_INVALID";
1917 return "STATUS_CONNECTION_ACTIVE";
1919 return "STATUS_NETWORK_UNREACHABLE";
1921 return "STATUS_HOST_UNREACHABLE";
1923 return "STATUS_PROTOCOL_UNREACHABLE";
1925 return "STATUS_PORT_UNREACHABLE";
1927 return "STATUS_REQUEST_ABORTED";
1929 return "STATUS_CONNECTION_ABORTED";
1931 return "STATUS_BAD_COMPRESSION_BUFFER";
1933 return "STATUS_USER_MAPPED_FILE";
1935 return "STATUS_AUDIT_FAILED";
1937 return "STATUS_TIMER_RESOLUTION_NOT_SET";
1939 return "STATUS_CONNECTION_COUNT_LIMIT";
1941 return "STATUS_LOGIN_TIME_RESTRICTION";
1943 return "STATUS_LOGIN_WKSTA_RESTRICTION";
1945 return "STATUS_IMAGE_MP_UP_MISMATCH";
1947 return "STATUS_INSUFFICIENT_LOGON_INFO";
1949 return "STATUS_BAD_DLL_ENTRYPOINT";
1951 return "STATUS_BAD_SERVICE_ENTRYPOINT";
1953 return "STATUS_LPC_REPLY_LOST";
1955 return "STATUS_IP_ADDRESS_CONFLICT1";
1957 return "STATUS_IP_ADDRESS_CONFLICT2";
1959 return "STATUS_REGISTRY_QUOTA_LIMIT";
1961 return "STATUS_PATH_NOT_COVERED";
1963 return "STATUS_NO_CALLBACK_ACTIVE";
1965 return "STATUS_LICENSE_QUOTA_EXCEEDED";
1967 return "STATUS_PWD_TOO_SHORT";
1969 return "STATUS_PWD_TOO_RECENT";
1971 return "STATUS_PWD_HISTORY_CONFLICT";
1973 return "STATUS_PLUGPLAY_NO_DEVICE";
1975 return "STATUS_UNSUPPORTED_COMPRESSION";
1977 return "STATUS_INVALID_HW_PROFILE";
1979 return "STATUS_INVALID_PLUGPLAY_DEVICE_PATH";
1981 return "STATUS_DRIVER_ORDINAL_NOT_FOUND";
1983 return "STATUS_DRIVER_ENTRYPOINT_NOT_FOUND";
1985 return "STATUS_RESOURCE_NOT_OWNED";
1987 return "STATUS_TOO_MANY_LINKS";
1989 return "STATUS_QUOTA_LIST_INCONSISTENT";
1991 return "STATUS_FILE_IS_OFFLINE";
1993 return "STATUS_EVALUATION_EXPIRATION";
1995 return "STATUS_ILLEGAL_DLL_RELOCATION";
1997 return "STATUS_LICENSE_VIOLATION";
1999 return "STATUS_DLL_INIT_FAILED_LOGOFF";
2001 return "STATUS_DRIVER_UNABLE_TO_LOAD";
2003 return "STATUS_DFS_UNAVAILABLE";
2005 return "STATUS_VOLUME_DISMOUNTED";
2007 return "STATUS_WX86_INTERNAL_ERROR";
2009 return "STATUS_WX86_FLOAT_STACK_CHECK";
2011 return "STATUS_VALIDATE_CONTINUE";
2013 return "STATUS_NO_MATCH";
2015 return "STATUS_NO_MORE_MATCHES";
2017 return "STATUS_NOT_A_REPARSE_POINT";
2019 return "STATUS_IO_REPARSE_TAG_INVALID";
2021 return "STATUS_IO_REPARSE_TAG_MISMATCH";
2023 return "STATUS_IO_REPARSE_DATA_INVALID";
2025 return "STATUS_IO_REPARSE_TAG_NOT_HANDLED";
2027 return "STATUS_REPARSE_POINT_NOT_RESOLVED";
2029 return "STATUS_DIRECTORY_IS_A_REPARSE_POINT";
2031 return "STATUS_RANGE_LIST_CONFLICT";
2033 return "STATUS_SOURCE_ELEMENT_EMPTY";
2035 return "STATUS_DESTINATION_ELEMENT_FULL";
2037 return "STATUS_ILLEGAL_ELEMENT_ADDRESS";
2039 return "STATUS_MAGAZINE_NOT_PRESENT";
2041 return "STATUS_REINITIALIZATION_NEEDED";
2043 return "STATUS_DEVICE_REQUIRES_CLEANING";
2045 return "STATUS_DEVICE_DOOR_OPEN";
2047 return "STATUS_ENCRYPTION_FAILED";
2049 return "STATUS_DECRYPTION_FAILED";
2051 return "STATUS_RANGE_NOT_FOUND";
2053 return "STATUS_NO_RECOVERY_POLICY";
2055 return "STATUS_NO_EFS";
2057 return "STATUS_WRONG_EFS";
2059 return "STATUS_NO_USER_KEYS";
2061 return "STATUS_FILE_NOT_ENCRYPTED";
2063 return "STATUS_NOT_EXPORT_FORMAT";
2065 return "STATUS_FILE_ENCRYPTED";
2067 return "STATUS_WAKE_SYSTEM";
2069 return "STATUS_WMI_GUID_NOT_FOUND";
2071 return "STATUS_WMI_INSTANCE_NOT_FOUND";
2073 return "STATUS_WMI_ITEMID_NOT_FOUND";
2075 return "STATUS_WMI_TRY_AGAIN";
2077 return "STATUS_SHARED_POLICY";
2079 return "STATUS_POLICY_OBJECT_NOT_FOUND";
2081 return "STATUS_POLICY_ONLY_IN_DS";
2083 return "STATUS_VOLUME_NOT_UPGRADED";
2085 return "STATUS_REMOTE_STORAGE_NOT_ACTIVE";
2087 return "STATUS_REMOTE_STORAGE_MEDIA_ERROR";
2089 return "STATUS_NO_TRACKING_SERVICE";
2091 return "STATUS_SERVER_SID_MISMATCH";
2093 return "STATUS_DS_NO_ATTRIBUTE_OR_VALUE";
2095 return "STATUS_DS_INVALID_ATTRIBUTE_SYNTAX";
2097 return "STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED";
2099 return "STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS";
2101 return "STATUS_DS_BUSY";
2103 return "STATUS_DS_UNAVAILABLE";
2105 return "STATUS_DS_NO_RIDS_ALLOCATED";
2107 return "STATUS_DS_NO_MORE_RIDS";
2109 return "STATUS_DS_INCORRECT_ROLE_OWNER";
2111 return "STATUS_DS_RIDMGR_INIT_ERROR";
2113 return "STATUS_DS_OBJ_CLASS_VIOLATION";
2115 return "STATUS_DS_CANT_ON_NON_LEAF";
2117 return "STATUS_DS_CANT_ON_RDN";
2119 return "STATUS_DS_CANT_MOD_OBJ_CLASS";
2121 return "STATUS_DS_CROSS_DOM_MOVE_FAILED";
2123 return "STATUS_DS_GC_NOT_AVAILABLE";
2125 return "STATUS_DIRECTORY_SERVICE_REQUIRED";
2127 return "STATUS_REPARSE_ATTRIBUTE_CONFLICT";
2129 return "STATUS_CANT_ENABLE_DENY_ONLY";
2131 return "STATUS_FLOAT_MULTIPLE_FAULTS";
2133 return "STATUS_FLOAT_MULTIPLE_TRAPS";
2135 return "STATUS_DEVICE_REMOVED";
2137 return "STATUS_JOURNAL_DELETE_IN_PROGRESS";
2139 return "STATUS_JOURNAL_NOT_ACTIVE";
2141 return "STATUS_NOINTERFACE";
2143 return "STATUS_DS_ADMIN_LIMIT_EXCEEDED";
2145 return "STATUS_DRIVER_FAILED_SLEEP";
2147 return "STATUS_MUTUAL_AUTHENTICATION_FAILED";
2149 return "STATUS_CORRUPT_SYSTEM_FILE";
2151 return "STATUS_DATATYPE_MISALIGNMENT_ERROR";
2153 return "STATUS_WMI_READ_ONLY";
2155 return "STATUS_WMI_SET_FAILURE";
2157 return "STATUS_COMMITMENT_MINIMUM";
2159 return "STATUS_REG_NAT_CONSUMPTION";
2161 return "STATUS_TRANSPORT_FULL";
2163 return "STATUS_DS_SAM_INIT_FAILURE";
2165 return "STATUS_ONLY_IF_CONNECTED";
2167 return "STATUS_DS_SENSITIVE_GROUP_VIOLATION";
2169 return "STATUS_PNP_RESTART_ENUMERATION";
2171 return "STATUS_JOURNAL_ENTRY_DELETED";
2173 return "STATUS_DS_CANT_MOD_PRIMARYGROUPID";
2175 return "STATUS_SYSTEM_IMAGE_BAD_SIGNATURE";
2177 return "STATUS_PNP_REBOOT_REQUIRED";
2179 return "STATUS_POWER_STATE_INVALID";
2181 return "STATUS_DS_INVALID_GROUP_TYPE";
2183 return "STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN";
2185 return "STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN";
2187 return "STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER";
2189 return "STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER";
2191 return "STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER";
2193 return "STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER";
2195 return "STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER";
2197 return "STATUS_DS_HAVE_PRIMARY_MEMBERS";
2199 return "STATUS_WMI_NOT_SUPPORTED";
2201 return "STATUS_INSUFFICIENT_POWER";
2203 return "STATUS_SAM_NEED_BOOTKEY_PASSWORD";
2205 return "STATUS_SAM_NEED_BOOTKEY_FLOPPY";
2207 return "STATUS_DS_CANT_START";
2209 return "STATUS_DS_INIT_FAILURE";
2211 return "STATUS_SAM_INIT_FAILURE";
2213 return "STATUS_DS_GC_REQUIRED";
2215 return "STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY";
2217 return "STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS";
2219 return "STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED";
2221 return "STATUS_MULTIPLE_FAULT_VIOLATION";
2223 return "STATUS_NOT_SUPPORTED_ON_SBS";
2225 return "STATUS_WOW_ASSERTION";
2227 return "DBG_NO_STATE_CHANGE";
2229 return "DBG_APP_NOT_IDLE";
2231 return "RPC_NT_INVALID_STRING_BINDING";
2233 return "RPC_NT_WRONG_KIND_OF_BINDING";
2235 return "RPC_NT_INVALID_BINDING";
2237 return "RPC_NT_PROTSEQ_NOT_SUPPORTED";
2239 return "RPC_NT_INVALID_RPC_PROTSEQ";
2241 return "RPC_NT_INVALID_STRING_UUID";
2243 return "RPC_NT_INVALID_ENDPOINT_FORMAT";
2245 return "RPC_NT_INVALID_NET_ADDR";
2247 return "RPC_NT_NO_ENDPOINT_FOUND";
2249 return "RPC_NT_INVALID_TIMEOUT";
2251 return "RPC_NT_OBJECT_NOT_FOUND";
2253 return "RPC_NT_ALREADY_REGISTERED";
2255 return "RPC_NT_TYPE_ALREADY_REGISTERED";
2257 return "RPC_NT_ALREADY_LISTENING";
2259 return "RPC_NT_NO_PROTSEQS_REGISTERED";
2261 return "RPC_NT_NOT_LISTENING";
2263 return "RPC_NT_UNKNOWN_MGR_TYPE";
2265 return "RPC_NT_UNKNOWN_IF";
2267 return "RPC_NT_NO_BINDINGS";
2269 return "RPC_NT_NO_PROTSEQS";
2271 return "RPC_NT_CANT_CREATE_ENDPOINT";
2273 return "RPC_NT_OUT_OF_RESOURCES";
2275 return "RPC_NT_SERVER_UNAVAILABLE";
2277 return "RPC_NT_SERVER_TOO_BUSY";
2279 return "RPC_NT_INVALID_NETWORK_OPTIONS";
2281 return "RPC_NT_NO_CALL_ACTIVE";
2283 return "RPC_NT_CALL_FAILED";
2285 return "RPC_NT_CALL_FAILED_DNE";
2287 return "RPC_NT_PROTOCOL_ERROR";
2289 return "RPC_NT_UNSUPPORTED_TRANS_SYN";
2291 return "RPC_NT_UNSUPPORTED_TYPE";
2293 return "RPC_NT_INVALID_TAG";
2295 return "RPC_NT_INVALID_BOUND";
2297 return "RPC_NT_NO_ENTRY_NAME";
2299 return "RPC_NT_INVALID_NAME_SYNTAX";
2301 return "RPC_NT_UNSUPPORTED_NAME_SYNTAX";
2303 return "RPC_NT_UUID_NO_ADDRESS";
2305 return "RPC_NT_DUPLICATE_ENDPOINT";
2307 return "RPC_NT_UNKNOWN_AUTHN_TYPE";
2309 return "RPC_NT_MAX_CALLS_TOO_SMALL";
2311 return "RPC_NT_STRING_TOO_LONG";
2313 return "RPC_NT_PROTSEQ_NOT_FOUND";
2315 return "RPC_NT_PROCNUM_OUT_OF_RANGE";
2317 return "RPC_NT_BINDING_HAS_NO_AUTH";
2319 return "RPC_NT_UNKNOWN_AUTHN_SERVICE";
2321 return "RPC_NT_UNKNOWN_AUTHN_LEVEL";
2323 return "RPC_NT_INVALID_AUTH_IDENTITY";
2325 return "RPC_NT_UNKNOWN_AUTHZ_SERVICE";
2327 return "EPT_NT_INVALID_ENTRY";
2329 return "EPT_NT_CANT_PERFORM_OP";
2331 return "EPT_NT_NOT_REGISTERED";
2333 return "RPC_NT_NOTHING_TO_EXPORT";
2335 return "RPC_NT_INCOMPLETE_NAME";
2337 return "RPC_NT_INVALID_VERS_OPTION";
2339 return "RPC_NT_NO_MORE_MEMBERS";
2341 return "RPC_NT_NOT_ALL_OBJS_UNEXPORTED";
2343 return "RPC_NT_INTERFACE_NOT_FOUND";
2345 return "RPC_NT_ENTRY_ALREADY_EXISTS";
2347 return "RPC_NT_ENTRY_NOT_FOUND";
2349 return "RPC_NT_NAME_SERVICE_UNAVAILABLE";
2351 return "RPC_NT_INVALID_NAF_ID";
2353 return "RPC_NT_CANNOT_SUPPORT";
2355 return "RPC_NT_NO_CONTEXT_AVAILABLE";
2357 return "RPC_NT_INTERNAL_ERROR";
2359 return "RPC_NT_ZERO_DIVIDE";
2361 return "RPC_NT_ADDRESS_ERROR";
2363 return "RPC_NT_FP_DIV_ZERO";
2365 return "RPC_NT_FP_UNDERFLOW";
2367 return "RPC_NT_FP_OVERFLOW";
2369 return "RPC_NT_NO_MORE_ENTRIES";
2371 return "RPC_NT_SS_CHAR_TRANS_OPEN_FAIL";
2373 return "RPC_NT_SS_CHAR_TRANS_SHORT_FILE";
2375 return "RPC_NT_SS_IN_NULL_CONTEXT";
2377 return "RPC_NT_SS_CONTEXT_MISMATCH";
2379 return "RPC_NT_SS_CONTEXT_DAMAGED";
2381 return "RPC_NT_SS_HANDLES_MISMATCH";
2383 return "RPC_NT_SS_CANNOT_GET_CALL_HANDLE";
2385 return "RPC_NT_NULL_REF_POINTER";
2387 return "RPC_NT_ENUM_VALUE_OUT_OF_RANGE";
2389 return "RPC_NT_BYTE_COUNT_TOO_SMALL";
2391 return "RPC_NT_BAD_STUB_DATA";
2393 return "RPC_NT_CALL_IN_PROGRESS";
2395 return "RPC_NT_NO_MORE_BINDINGS";
2397 return "RPC_NT_GROUP_MEMBER_NOT_FOUND";
2399 return "EPT_NT_CANT_CREATE";
2401 return "RPC_NT_INVALID_OBJECT";
2403 return "RPC_NT_NO_INTERFACES";
2405 return "RPC_NT_CALL_CANCELLED";
2407 return "RPC_NT_BINDING_INCOMPLETE";
2409 return "RPC_NT_COMM_FAILURE";
2411 return "RPC_NT_UNSUPPORTED_AUTHN_LEVEL";
2413 return "RPC_NT_NO_PRINC_NAME";
2415 return "RPC_NT_NOT_RPC_ERROR";
2417 return "RPC_NT_UUID_LOCAL_ONLY";
2419 return "RPC_NT_SEC_PKG_ERROR";
2421 return "RPC_NT_NOT_CANCELLED";
2423 return "RPC_NT_INVALID_ES_ACTION";
2425 return "RPC_NT_WRONG_ES_VERSION";
2427 return "RPC_NT_WRONG_STUB_VERSION";
2429 return "RPC_NT_INVALID_PIPE_OBJECT";
2431 return "RPC_NT_INVALID_PIPE_OPERATION";
2433 return "RPC_NT_WRONG_PIPE_VERSION";
2435 return "RPC_NT_PIPE_CLOSED";
2437 return "RPC_NT_PIPE_DISCIPLINE_ERROR";
2439 return "RPC_NT_PIPE_EMPTY";
2441 return "RPC_NT_INVALID_ASYNC_HANDLE";
2443 return "RPC_NT_INVALID_ASYNC_CALL";
2445 return "RPC_NT_SEND_INCOMPLETE";
2447 return "STATUS_ACPI_INVALID_OPCODE";
2449 return "STATUS_ACPI_STACK_OVERFLOW";
2451 return "STATUS_ACPI_ASSERT_FAILED";
2453 return "STATUS_ACPI_INVALID_INDEX";
2455 return "STATUS_ACPI_INVALID_ARGUMENT";
2457 return "STATUS_ACPI_FATAL";
2459 return "STATUS_ACPI_INVALID_SUPERNAME";
2461 return "STATUS_ACPI_INVALID_ARGTYPE";
2463 return "STATUS_ACPI_INVALID_OBJTYPE";
2465 return "STATUS_ACPI_INVALID_TARGETTYPE";
2467 return "STATUS_ACPI_INCORRECT_ARGUMENT_COUNT";
2469 return "STATUS_ACPI_ADDRESS_NOT_MAPPED";
2471 return "STATUS_ACPI_INVALID_EVENTTYPE";
2473 return "STATUS_ACPI_HANDLER_COLLISION";
2475 return "STATUS_ACPI_INVALID_DATA";
2477 return "STATUS_ACPI_INVALID_REGION";
2479 return "STATUS_ACPI_INVALID_ACCESS_SIZE";
2481 return "STATUS_ACPI_ACQUIRE_GLOBAL_LOCK";
2483 return "STATUS_ACPI_ALREADY_INITIALIZED";
2485 return "STATUS_ACPI_NOT_INITIALIZED";
2487 return "STATUS_ACPI_INVALID_MUTEX_LEVEL";
2489 return "STATUS_ACPI_MUTEX_NOT_OWNED";
2491 return "STATUS_ACPI_MUTEX_NOT_OWNER";
2493 return "STATUS_ACPI_RS_ACCESS";
2495 return "STATUS_ACPI_INVALID_TABLE";
2497 return "STATUS_ACPI_REG_HANDLER_FAILED";
2499 return "STATUS_ACPI_POWER_REQUEST_FAILED";
2501 return "STATUS_CTX_WINSTATION_NAME_INVALID";
2503 return "STATUS_CTX_INVALID_PD";
2505 return "STATUS_CTX_PD_NOT_FOUND";
2507 return "STATUS_CTX_CDM_CONNECT";
2509 return "STATUS_CTX_CDM_DISCONNECT";
2511 return "STATUS_CTX_CLOSE_PENDING";
2513 return "STATUS_CTX_NO_OUTBUF";
2515 return "STATUS_CTX_MODEM_INF_NOT_FOUND";
2517 return "STATUS_CTX_INVALID_MODEMNAME";
2519 return "STATUS_CTX_RESPONSE_ERROR";
2521 return "STATUS_CTX_MODEM_RESPONSE_TIMEOUT";
2523 return "STATUS_CTX_MODEM_RESPONSE_NO_CARRIER";
2525 return "STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE";
2527 return "STATUS_CTX_MODEM_RESPONSE_BUSY";
2529 return "STATUS_CTX_MODEM_RESPONSE_VOICE";
2531 return "STATUS_CTX_TD_ERROR";
2533 return "STATUS_CTX_LICENSE_CLIENT_INVALID";
2535 return "STATUS_CTX_LICENSE_NOT_AVAILABLE";
2537 return "STATUS_CTX_LICENSE_EXPIRED";
2539 return "STATUS_CTX_WINSTATION_NOT_FOUND";
2541 return "STATUS_CTX_WINSTATION_NAME_COLLISION";
2543 return "STATUS_CTX_WINSTATION_BUSY";
2545 return "STATUS_CTX_BAD_VIDEO_MODE";
2547 return "STATUS_CTX_GRAPHICS_INVALID";
2549 return "STATUS_CTX_NOT_CONSOLE";
2551 return "STATUS_CTX_CLIENT_QUERY_TIMEOUT";
2553 return "STATUS_CTX_CONSOLE_DISCONNECT";
2555 return "STATUS_CTX_CONSOLE_CONNECT";
2557 return "STATUS_CTX_SHADOW_DENIED";
2559 return "STATUS_CTX_WINSTATION_ACCESS_DENIED";
2561 return "STATUS_CTX_INVALID_WD";
2563 return "STATUS_CTX_WD_NOT_FOUND";
2565 return "STATUS_CTX_SHADOW_INVALID";
2567 return "STATUS_CTX_SHADOW_DISABLED";
2569 return "STATUS_RDP_PROTOCOL_ERROR";
2571 return "STATUS_CTX_CLIENT_LICENSE_NOT_SET";
2573 return "STATUS_CTX_CLIENT_LICENSE_IN_USE";
2575 return "STATUS_PNP_BAD_MPS_TABLE";
2577 return "STATUS_PNP_TRANSLATION_FAILED";
2579 return "STATUS_PNP_IRQ_TRANSLATION_FAILED";
2581 return "STATUS_UNKNOWN";
2586 /* avoid stack overflow for dead symlinks */
2589 Ext2TraceMcb(PCHAR fn
, USHORT lc
, USHORT add
, PEXT2_MCB Mcb
) {
2593 _snprintf(&_space
[0], 32, "%s:%d:", fn
, lc
);
2601 Ext2ReferXcb(&Mcb
->Refercount
);
2602 DEBUG(DL_RES
, ("%s +%2u %wZ (%p)\n", _space
, (Mcb
->Refercount
- 1), &Mcb
->FullName
, Mcb
));
2604 Ext2DerefXcb(&Mcb
->Refercount
);
2605 DEBUG(DL_RES
, ("%s -%2u %wZ (%p)\n", _space
, Mcb
->Refercount
, &Mcb
->FullName
, Mcb
));
2609 KSPIN_LOCK Ext2MemoryLock
;
2610 ULONGLONG Ext2TotalMemorySize
= 0;
2611 ULONG Ext2TotalAllocates
= 0;
2615 IN POOL_TYPE PoolType
,
2616 IN SIZE_T NumberOfBytes
,
2620 PUCHAR Buffer
= ExAllocatePoolWithTag(
2622 0x20 + NumberOfBytes
,
2626 PULONG Data
= (PULONG
)Buffer
;
2627 Data
[0] = (ULONG
)NumberOfBytes
;
2628 Data
[1] = (ULONG
)NumberOfBytes
+ 0x20;
2629 memset(Buffer
+ 0x08, 'S', 8);
2630 memset(Buffer
+ 0x10 + NumberOfBytes
, 'E', 0x10);
2632 KeAcquireSpinLock(&Ext2MemoryLock
, &Irql
);
2633 Ext2TotalMemorySize
= Ext2TotalMemorySize
+ NumberOfBytes
;
2634 Ext2TotalAllocates
+= 1;
2635 KeReleaseSpinLock(&Ext2MemoryLock
, Irql
);
2647 PUCHAR Buffer
= (PUCHAR
)P
;
2649 ULONG NumberOfBytes
, i
;
2653 Data
= (PULONG
)(Buffer
);
2654 NumberOfBytes
= Data
[0];
2655 if (Data
[1] != NumberOfBytes
+ 0x20) {
2658 for (i
=0x08; i
< 0x10; i
++) {
2659 if (Buffer
[i
] != 'S') {
2664 for (i
=0; i
< 0x10; i
++) {
2665 if (Buffer
[i
+ NumberOfBytes
+ 0x10] != 'E') {
2668 Buffer
[i
+ NumberOfBytes
+ 0x10] = '-';
2671 KeAcquireSpinLock(&Ext2MemoryLock
, &Irql
);
2672 Ext2TotalMemorySize
= Ext2TotalMemorySize
- NumberOfBytes
;
2673 Ext2TotalAllocates
-= 1;
2674 KeReleaseSpinLock(&Ext2MemoryLock
, Irql
);
2676 ExFreePoolWithTag(Buffer
, Tag
);
2683 IN POOL_TYPE PoolType
,
2684 IN SIZE_T NumberOfBytes
,
2688 return ExAllocatePoolWithTag(
2700 ExFreePoolWithTag(P
, Tag
);
2703 #endif // !EXT2_DEBUG