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