📄 debug.c
字号:
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s Unknown FileInformationClass %u\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
FileInformationClass
));
}
break;
case IRP_MJ_QUERY_VOLUME_INFORMATION:
FsInformationClass =
IoStackLocation->Parameters.QueryVolume.FsInformationClass;
if (FsInformationClass <= FileFsMaximumInformation)
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s %s\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
FsInformationClassStrings[FsInformationClass]
));
}
else
{
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s Unknown FsInformationClass %u\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
FsInformationClass
));
}
break;
case IRP_MJ_DIRECTORY_CONTROL:
if (IoStackLocation->MinorFunction & IRP_MN_QUERY_DIRECTORY)
{
#ifndef _GNU_NTIFS_
FileInformationClass =
IoStackLocation->Parameters.QueryDirectory.FileInformationClass;
#else
FileInformationClass = ((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileInformationClass;
#endif
if (FileInformationClass <= FileMaximumInformation)
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s %s\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
FileInformationClassStrings[FileInformationClass]
));
if (
#ifndef _GNU_NTIFS_
IoStackLocation->Parameters.QueryDirectory.FileName
#else
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileName
#endif
)
{
#ifndef _GNU_NTIFS_
KdPrint((
DRIVER_NAME ": %-16.16s FileName: %.*S FileIndex: %x %s%s%s\n",
PsGetCurrentProcess()->ImageFileName,
IoStackLocation->Parameters.QueryDirectory.FileName->Length / 2,
IoStackLocation->Parameters.QueryDirectory.FileName->Buffer,
IoStackLocation->Parameters.QueryDirectory.FileIndex,
(IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
(IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "")
));
#else
KdPrint((
DRIVER_NAME ": %-16.16s FileName: %.*S FileIndex: %x %s%s%s\n",
PsGetCurrentProcess()->ImageFileName,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileName->Length / 2,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileName->Buffer,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileIndex,
(IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
(IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
((IoStackLocation->Flags & SL_INDEX_SPECIFIED) ? "SL_INDEX_SPECIFIED " : "")
));
#endif
}
else
{
#ifndef _GNU_NTIFS_
KdPrint((
DRIVER_NAME ": %-16.16s FileName: FileIndex: %#x %s%s%s\n",
PsGetCurrentProcess()->ImageFileName,
IoStackLocation->Parameters.QueryDirectory.FileIndex,
(IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
(IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
(IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "")
));
#else
KdPrint((
DRIVER_NAME ": %-16.16s FileName: FileIndex: %#x %s%s%s\n",
PsGetCurrentProcess()->ImageFileName,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.QueryDirectory.FileIndex,
(IoStackLocation->Flags & SL_RESTART_SCAN ? "SL_RESTART_SCAN " : ""),
(IoStackLocation->Flags & SL_RETURN_SINGLE_ENTRY ? "SL_RETURN_SINGLE_ENTRY " : ""),
(IoStackLocation->Flags & SL_INDEX_SPECIFIED ? "SL_INDEX_SPECIFIED " : "")
));
#endif
}
}
else
{
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s Unknown FileInformationClass %u\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
FileInformationClass
));
}
}
else if (IoStackLocation->MinorFunction & IRP_MN_NOTIFY_CHANGE_DIRECTORY)
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IRP_MN_NOTIFY_CHANGE_DIRECTORY\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName
));
}
else
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s Unknown minor function %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->MinorFunction
));
}
break;
case IRP_MJ_FILE_SYSTEM_CONTROL:
if (IoStackLocation->MinorFunction == IRP_MN_USER_FS_REQUEST)
{
#ifndef _GNU_NTIFS_
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->Parameters.FileSystemControl.FsControlCode
));
#else
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s IRP_MN_USER_FS_REQUEST FsControlCode: %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.FileSystemControl.FsControlCode
));
#endif
}
else if (IoStackLocation->MinorFunction == IRP_MN_MOUNT_VOLUME)
{
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s IRP_MN_MOUNT_VOLUME DeviceObject: %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->Parameters.MountVolume.DeviceObject
));
}
else if (IoStackLocation->MinorFunction == IRP_MN_VERIFY_VOLUME)
{
KdPrint((
DRIVER_NAME
": %-16.16s %-31s %s IRP_MN_VERIFY_VOLUME DeviceObject: %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->Parameters.VerifyVolume.DeviceObject
));
}
else if (IoStackLocation->MinorFunction == IRP_MN_LOAD_FILE_SYSTEM)
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IRP_MN_LOAD_FILE_SYSTEM\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName
));
}
#if (_WIN32_WINNT >= 0x0500)
else if (IoStackLocation->MinorFunction == IRP_MN_KERNEL_CALL)
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IRP_MN_KERNEL_CALL\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName
));
}
#endif // (_WIN32_WINNT >= 0x0500)
else
{
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s Unknown minor function %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->MinorFunction
));
}
break;
case IRP_MJ_DEVICE_CONTROL:
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IoControlCode: %#x\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->Parameters.DeviceIoControl.IoControlCode
));
break;
case IRP_MJ_LOCK_CONTROL:
if (IoStackLocation->MinorFunction & IRP_MN_LOCK)
{
#ifndef _GNU_NTIFS_
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IRP_MN_LOCK Offset: %I64u Length: %I64u Key: %u %s%s\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
IoStackLocation->Parameters.LockControl.ByteOffset.QuadPart,
IoStackLocation->Parameters.LockControl.Length->QuadPart,
IoStackLocation->Parameters.LockControl.Key,
(IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""),
(IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "")
));
#else
KdPrint((
DRIVER_NAME ": %-16.16s %-31s %s IRP_MN_LOCK Offset: %I64u Length: %I64u Key: %u %s%s\n",
PsGetCurrentProcess()->ImageFileName,
IrpMjStrings[IoStackLocation->MajorFunction],
FileName,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.LockControl.ByteOffset.QuadPart,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.LockControl.Length->QuadPart,
((PEXTENDED_IO_STACK_LOCATION)
IoStackLocation)->Parameters.LockControl.Key,
(IoStackLocation->Flags & SL_FAIL_IMMEDIATELY ? "SL_FAIL_IMMEDIATELY " : ""),
(IoStackLocation->Flags & SL_EXCLUSIVE_LOCK ? "SL_EXCLUSIVE_LOCK " : "")
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -