⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.c

📁 ext2 file system driver for win nt
💻 C
📖 第 1 页 / 共 5 页
字号:
            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 + -