vxk 头衔: 无名氏
门派: 使徒十三
等级: 大天使
信息:
威望: +5 积分: 2081
现金: 5904 雷傲元
存款: 2552072 雷傲元
贷款: 没贷款
来自: 保密
发帖: 1916 篇
精华: 8 篇
在线: 54 时 10 分 45 秒
注册: 2002/08/05 08:43am
造访: 2006/02/11 08:40pm
消息 查看 搜索 好友 复制 引用 回复 只看我 [楼 主]
最近真的很烦,FSDIO由于某些原因不能公开,只能在这里稍微谈论下RAW READ了,RAWREAD就是从磁盘读取文件得说,通过打开.//X:来进行读取文件的操作~~
不过之前要先通过给文件对象发送FSCTL_GET_RETRIEVaL_POINTERS获得相关信息——懒得自己计算的说~~
具体给个应用层例子好了(kernel mode的代码大家自己想一下,自己动手~~)::
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <winioctl.h>
ULONGLONG *GetFileClusters(
PCHAR lpFileName,
ULONG ClusterSize,
ULONG *ClCount,
ULONG *FileSize
)
{
HANDLE hFile;
ULONG OutSize;
ULONG Bytes, Cls, CnCount, r;
ULONGLONG *Clusters = NULL;
BOOLEAN Result = FALSE;
LARGE_INTEGER PrevVCN, Lcn;
STARTING_VCN_INPUT_BUFFER InBuf;
PRETRIEVaL_POINTERS_BUFFER OutBuf;
hFile = CreateFile(lpFileName, FILE_READ_ATTRIBUTES,
FILE_SHARE_READ | FI
门派: 使徒十三
等级: 大天使
信息:
威望: +5 积分: 2081
现金: 5904 雷傲元
存款: 2552072 雷傲元
贷款: 没贷款
来自: 保密
发帖: 1916 篇
精华: 8 篇
在线: 54 时 10 分 45 秒
注册: 2002/08/05 08:43am
造访: 2006/02/11 08:40pm
消息 查看 搜索 好友 复制 引用 回复 只看我 [楼 主]
最近真的很烦,FSDIO由于某些原因不能公开,只能在这里稍微谈论下RAW READ了,RAWREAD就是从磁盘读取文件得说,通过打开.//X:来进行读取文件的操作~~
不过之前要先通过给文件对象发送FSCTL_GET_RETRIEVaL_POINTERS获得相关信息——懒得自己计算的说~~
具体给个应用层例子好了(kernel mode的代码大家自己想一下,自己动手~~)::
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <winioctl.h>
ULONGLONG *GetFileClusters(
PCHAR lpFileName,
ULONG ClusterSize,
ULONG *ClCount,
ULONG *FileSize
)
{
HANDLE hFile;
ULONG OutSize;
ULONG Bytes, Cls, CnCount, r;
ULONGLONG *Clusters = NULL;
BOOLEAN Result = FALSE;
LARGE_INTEGER PrevVCN, Lcn;
STARTING_VCN_INPUT_BUFFER InBuf;
PRETRIEVaL_POINTERS_BUFFER OutBuf;
hFile = CreateFile(lpFileName, FILE_READ_ATTRIBUTES,
FILE_SHARE_READ | FI