阅读:1825回复:13
各位老大牛,费几分钟给写几行代码吧!!!
XP不支持U盘有多个分区,只认第一个.
更可恨的是我买了块sd to ide 的转接卡,接上去据然还是可移动磁盘,不支持多分区. 我想加个小过滤驱动,把所有的可移动磁盘均报给xp为固定磁盘. 对各位大牛应该不难. 对我可就难了,我的水平是没事儿改改diskperf的源码学习中. |
|
沙发#
发布于:2007-07-28 13:35
各位老牛,大牛,谢谢!
|
|
板凳#
发布于:2007-07-30 13:40
热心人,come on!
|
|
地板#
发布于:2007-07-30 14:12
你找厂家好了.这个几分钟估计是写不出来的
|
|
|
地下室#
发布于:2007-07-30 16:02
要各位老大牛写代码,可能会要你每K每分钟奥
|
|
|
5楼#
发布于:2007-08-23 13:29
//基本搞定,在ddk自带的diskperf基础上加入代码.
// 1 修改 diskperf.inf 中的 UpperFilters 为 LowerFilters // 2 在 DiskPerfDeviceControl 函数中加入处理 IOCTL_STORAGE_QUERY_PROPERTY 的代码如下 else if(currentIrpStack->Parameters.DeviceIoControl.IoControlCode == IOCTL_STORAGE_QUERY_PROPERTY) { NTSTATUS status; PSTORAGE_PROPERTY_QUERY pspq; PSTORAGE_DEVICE_DESCRIPTOR psdd; BOOLEAN isQueryType = FALSE; if(currentIrpStack->Parameters.DeviceIoControl.InputBufferLength >= sizeof(STORAGE_PROPERTY_QUERY)) { pspq = (PSTORAGE_PROPERTY_QUERY)Irp->AssociatedIrp.SystemBuffer; if((StorageDeviceProperty == pspq->PropertyId) && (PropertyStandardQuery == pspq->QueryType)) { isQueryType = TRUE; } } status = DiskPerfForwardIrpSynchronous(DeviceObject, Irp); if(isQueryType) { currentIrpStack = IoGetCurrentIrpStackLocation(Irp); if(currentIrpStack->Parameters.DeviceIoControl.OutputBufferLength >= sizeof(STORAGE_QUERY_TYPE)) { psdd = (PSTORAGE_DEVICE_DESCRIPTOR)Irp->AssociatedIrp.SystemBuffer; psdd->RemovableMedia = 0; } } Irp->IoStatus.Status = status; IoCompleteRequest(Irp, IO_NO_INCREMENT); return (status); } //发现的问题,在测试的几个显示为移动盘的U盘中,插着U盘启动机器没问题,U盘显示为固定盘, //但启动机器后插入U盘,只有部分U盘显示为固定盘,另一部分闪啊闪啊(20多秒)最后没盘符,只 //有运行diskpart,执行一遍rescan(得20多秒),盘符才能出来了,是固定盘. //请教各位小中大老牛们, 有什么解决办法? //请不要蔽帚自珍, 我这不是商业软件, 只是个人兴趣, 谢谢! //弄了N多小时了, 头疼! |
|
6楼#
发布于:2007-08-23 15:09
![]() |
|
|
7楼#
发布于:2007-08-23 19:33
顶起!
|
|
8楼#
发布于:2007-08-28 08:33
顶起!谢谢!
|
|
9楼#
发布于:2007-08-28 11:39
帮顶吧,说不定以后你帮我顶帖 哈哈
![]() |
|
10楼#
发布于:2007-09-01 19:18
引用第9楼boywhp于2007-08-28 11:39发表的 : 谢谢! |
|
11楼#
发布于:2007-09-12 09:28
再顶起.
|
|
12楼#
发布于:2007-09-28 14:39
好帖,顶起
|
|
13楼#
发布于:2007-09-29 01:31
我也帮你顶!
|
|
|