Error in IoGetDiskDeviceObject

Hi guys,

I have a driver which is based on sfilter. Since it’s a system-start
driver, it needs to enumerate all existing volumes via
IoRegisterFsRegistrationChange.

The problem is, sometimes on XP the calls of IoGetDiskDeviceObject on
some volumes could fail with 0xC000000DL. However I still can
successfully get the infomation of these volume with !driveinfo:

Example:
0: kd> !driveinfo c:
Drive c:, DriveObject e152ae88
Directory Object: e1008ac0 Name: C:
Target String is ‘\Device\HarddiskVolume2’
Drive Letter Index is 3 (C:)
Volume DevObj: 86542900
Vpb: 8655b9b8 DeviceObject: 865c9020
FileSystem: \FileSystem\Ntfs

I also tested sfilter for some time. It seems that it works fine. So I
guess there is something wrong with our driver but no idea…

Any hints? Thanks in advance.

Cheers,
R. Yang

  • Windows Kernel Developer [Custom Dev and Consulting]

Update on the problem: sfilter also has the same problem. It seems
that this only happens after I install ZoneAlarm (7.0.337.000).

On Fri, 20 Apr 2007 17:10:43 +1000, R. Yang
wrote:

>Hi guys,
>
>I have a driver which is based on sfilter. Since it’s a system-start
>driver, it needs to enumerate all existing volumes via
>IoRegisterFsRegistrationChange.
>
>The problem is, sometimes on XP the calls of IoGetDiskDeviceObject on
>some volumes could fail with 0xC000000DL. However I still can
>successfully get the infomation of these volume with !driveinfo:
>
>Example:
>0: kd> !driveinfo c:
>Drive c:, DriveObject e152ae88
> Directory Object: e1008ac0 Name: C:
> Target String is ‘\Device\HarddiskVolume2’
> Drive Letter Index is 3 (C:)
> Volume DevObj: 86542900
> Vpb: 8655b9b8 DeviceObject: 865c9020
> FileSystem: \FileSystem\Ntfs
>
>I also tested sfilter for some time. It seems that it works fine. So I
>guess there is something wrong with our driver but no idea…
>
>Any hints? Thanks in advance.
>
>Cheers,
>R. Yang
>- Windows Kernel Developer [Custom Dev and Consulting]

Cheers,
R. Yang
- Windows Kernel Developer [Custom Dev and Consulting]