redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
阅读:6074回复:11

完全格式化和快速格式化到底有什么区别,困扰好久了,请各位大侠赐教

楼主#
更多 发布于:2007-03-22 09:57
  我在自己写的总线驱动上将文件虚拟成一个硬盘,可以进行分区,也能进行快速格式化,但是在完全格式化时,进度条到最后,总是提示格式化无法完成,这两种格式化方式到底有什么区别呢,请各位大哥大姐帮帮小弟

最新喜欢:

LeopardLeopar...
请各位多指教
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-22 12:44
你的driver是哪种?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-22 19:35
我的DRIVER是一个虚拟总线驱动,总线驱动创建PDO,disk.sys就是附加在这个PDO上,硬盘的由总线驱动来虚拟,现在读写分区都没有问题,就是不能进行完全格式化,只能快速格式化.
请各位多指教
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-27 13:49
跟踪看看哪个irp失败了
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-01 10:26
传说中的tooflat 大虾来了,是这样的程序中的所有的命令都是成功执行的,我怀疑的是校验命令没有正确处理,我是直接返回成功的,还有一个控制码是0x0066001B命令我也不知道是什么命令,所以没有处理,直接返回STATUS_NOT_IMPLEMENTED或者STATUS_SUCCESS都试过。不知道这个命令是什么命令,查不到资料。
请各位多指教
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-14 09:51
终于搞定了。
请各位多指教
skeeter_xu
驱动牛犊
驱动牛犊
  • 注册日期2006-05-14
  • 最后登录2010-04-17
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-04-17 07:23
引用第5楼redhatking2007-04-14 09:51发表的“”:
终于搞定了。


楼上的兄弟,我也在看一些disk.sys方面的东西。对于windows下的格式化,没有办法搞清楚它到底在干什么。你能否把一些经验分享一下?
三人行,必有我师
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-04-17 08:29
其实非常简单,格式化就是读写磁盘,建立对应的文件系统,完全格式化主比快速格式化多开始的磁盘校验的功能
请各位多指教
skeeter_xu
驱动牛犊
驱动牛犊
  • 注册日期2006-05-14
  • 最后登录2010-04-17
  • 粉丝0
  • 关注0
  • 积分180分
  • 威望20点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-04-17 22:11
引用第7楼redhatking2007-04-17 08:29发表的“”:
其实非常简单,格式化就是读写磁盘,建立对应的文件系统,完全格式化主比快速格式化多开始的磁盘校验的功能


谢谢!那如何区别普通读写磁盘和格式化读写磁盘呢?老兄能不能把IRP的流程告知呢?
三人行,必有我师
redhatking
驱动牛犊
驱动牛犊
  • 注册日期2004-01-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望83点
  • 贡献值0点
  • 好评度56点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-04-17 23:36
格式化读写是向磁盘驱动发读写扇区IRP,主要操作是建立文件分配表之类的(当然具体操作是调用系统函数来完全成)
普通读写是先向文件系统发IRP,再由文件系统向磁盘驱动发IRP
请各位多指教
yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-05-21 23:17
引用第9楼redhatking于2007-04-17 23:36发表的  :
格式化读写是向磁盘驱动发读写扇区IRP,主要操作是建立文件分配表之类的(当然具体操作是调用系统函数来完全成)
普通读写是先向文件系统发IRP,再由文件系统向磁盘驱动发IRP


虽然咱不是搞这个的,但还是要顶一下!
qiweixue
驱动小牛
驱动小牛
  • 注册日期2004-07-21
  • 最后登录2011-12-19
  • 粉丝0
  • 关注0
  • 积分1006分
  • 威望274点
  • 贡献值0点
  • 好评度268点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2007-05-22 17:13
引用第9楼redhatking于2007-04-17 23:36发表的  :
格式化读写是向磁盘驱动发读写扇区IRP,主要操作是建立文件分配表之类的(当然具体操作是调用系统函数来完全成)
普通读写是先向文件系统发IRP,再由文件系统向磁盘驱动发IRP


貌似就在这一大堆disk 的 ioctl里了 吧,,,



Disk Management Control Codes

The following table identifies the control codes that are used in disk management.

Control code Operation


IOCTL_DISK_CREATE_DISK   :  
 Initializes the specified disk and disk partition table by using the specified information.

IOCTL_DISK_DELETE_DRIVE_LAYOUT
Removes the boot signature from the master boot record.

IOCTL_DISK_FORMAT_TRACKS :
Formats a contiguous set of floppy disk tracks.

IOCTL_DISK_FORMAT_TRACKS_EX  :

Formats a contiguous set of floppy disk tracks with an extended set of track specification parameters.

IOCTL_DISK_GET_CACHE_INFORMATION:
 Retrieves the disk cache configuration data.

IOCTL_DISK_GET_DRIVE_GEOMETRY_EX :
Retrieves information about the physical disk's geometry.

IOCTL_DISK_GET_DRIVE_LAYOUT_EX
Retrieves information about the number of partitions on a disk and the features of each partition.

IOCTL_DISK_GET_LENGTH_INFO
Retrieves the length of the specified disk, volume, or partition.

IOCTL_DISK_GET_PARTITION_INFO_EX
Retrieves partition information for AT and EFI (Extensible Firmware Interface) partitions.

IOCTL_DISK_GROW_PARTITION
 Enlarges the specified partition.

IOCTL_DISK_IS_WRITABLE
Determines whether the specified disk is writable.

IOCTL_DISK_PERFORMANCE
 Provides disk performance information.

IOCTL_DISK_PERFORMANCE_OFF
 Disables disk performance information.

IOCTL_DISK_REASSIGN_BLOCKS
Maps disk blocks to spare-block pool.

IOCTL_DISK_SET_CACHE_INFORMATION
 Sets the disk cache configuration data.

IOCTL_DISK_SET_DRIVE_LAYOUT_EX
Partitions a disk.
IOCTL_DISK_SET_PARTITION_INFO_EX
Sets the disk partition type.
IOCTL_DISK_UPDATE_PROPERTIES
Invalidates the cached partition table of the specified disk and re-enumerates the disk.
IOCTL_DISK_VERIFY
Performs logical format of a disk extent.


The following are defragmentation control codes.

Value Meaning
FSCTL_GET_RETRIEVAL_POINTERS Gets information about the cluster use of a file.
FSCTL_GET_VOLUME_BITMAP Gets a bitmap of cluster allocation.
FSCTL_MOVE_FILE Moves all or part of a file from one set of clusters to another within a volume.



The following list identifies the obsolete control codes:


IOCTL_DISK_CONTROLLER_NUMBER
IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL_DISK_GET_DRIVE_LAYOUT
IOCTL_DISK_GET_PARTITION_INFO
IOCTL_DISK_HISTOGRAM_DATA
IOCTL_DISK_HISTOGRAM_RESET
IOCTL_DISK_HISTOGRAM_STRUCTURE
IOCTL_DISK_LOGGING
IOCTL_DISK_REQUEST_DATA
IOCTL_DISK_REQUEST_STRUCTURE
IOCTL_DISK_SET_DRIVE_LAYOUT
IOCTL_DISK_SET_PARTITION_INFO
游客

返回顶部