首页
社区
课程
招聘
[求助]磁盘过滤时读裸盘失败。
发表于: 2012-9-27 11:43 3411

[求助]磁盘过滤时读裸盘失败。

2012-9-27 11:43
3411
要做的是读取一个卷的第一个扇区,代码如下:

Status = CvfReadDevice(PhysicalDevice, BootSector, Offset, SECTOR_SIZE);
if (!NT_SUCCESS(Status))
{
    KdPrint(("读取前512字节失败\n"));
    gsRead512Failed++;
    gsFailedReason = Status;
    break;
}

其中 CvfReadDevice 是这样写的:

static
NTSTATUS
CvfReadWriteDevice(
    __in BOOLEAN Write,
    __in PDEVICE_OBJECT DeviceObject,
    __inout PVOID Buffer,
    __in LARGE_INTEGER Offset,
    __in ULONG Length
)
{
    NTSTATUS Status;
    IO_STATUS_BLOCK IoStatusBlock;
    PIRP Irp = NULL;
    KEVENT CompletionEvent;

    KeInitializeEvent(&CompletionEvent, NotificationEvent, FALSE);
    Irp = IoBuildSynchronousFsdRequest(
              Write ? IRP_MJ_WRITE : IRP_MJ_READ,
              DeviceObject,
              Buffer,
              Length,
              &Offset,
              &CompletionEvent,
              &IoStatusBlock
          );
    if (!Irp)
    {
        return STATUS_INSUFFICIENT_RESOURCES;
    }

    ObReferenceObject(DeviceObject);
    Status = IoCallDriver(DeviceObject, Irp);

    if (Status == STATUS_PENDING)
    {
        Status = KeWaitForSingleObject(&CompletionEvent, Executive, KernelMode, FALSE, NULL);
        if (NT_SUCCESS(Status))
        {
            Status = IoStatusBlock.Status;
        }
    }

    ObDereferenceObject(DeviceObject);
    return Status;
}

NTSTATUS
CvfReadDevice(
    __in PDEVICE_OBJECT DeviceObject,
    __out PVOID Buffer,
    __in LARGE_INTEGER Offset,
    __in ULONG Length
)
{
    return CvfReadWriteDevice(FALSE, DeviceObject, Buffer, Offset, Length);
}

在XP,WIN7和我另一台WIN764位虚拟机上都可以成功读取。
但在一台64位真实机上, CvfReadDevice 返回值是 0xc0000010
查了下DDK头文件,定义为:

//
// MessageId: ISCSI_ERR_INVALID_KEY_DURING_CHAP
//
// MessageText:
//
// An invalid key was received during CHAP negotiation. The key=value pair is given in the dump data.
//
#define ISCSI_ERR_INVALID_KEY_DURING_CHAP ((NTSTATUS)0xC0000010L)

完全不能理解,求高人指点这个错误是为什么,感激不尽。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//