How to notify the PNP, PartMgr, and DiskMgr the disk struct has been changed

Hi,evryone
In the Diskperf example, I modified the disk layout struct, and added a partition maunally,
But the DiskMgr,PartMgr and the explorer doesn’t know the disk layout has been changed.
How should I notify them?
I have tried IoReportTargetDeviceChangeAsynchronous, but It doesn’t work fine.
What should I do?
Thanks!

For example:
Suppose the disk partition DBR is encrypted, after the disk is inserted, the PartMgr can’t recognized the Filesystem.

Then my app uses a IOCTL to notify my disk upper filter to decrypt the DBR.

IOCTL()
{

*******
decrypt the disk DBR
*******

Notification.Event = GUID_IO_DISK_LAYOUT_CHANGE;
Notification.Version = 1;
Notification.Size = (USHORT)FIELD_OFFSET(TARGET_DEVICE_CUSTOM_NOTIFICATION, CustomDataBuffer);
Notification.FileObject = NULL;
Notification.NameBufferOffset = -1;

IoReportTargetDeviceChangeAsynchronous(DeviceExtension->PhysicalDeviceObject,
&Notification,
NULL,
NULL);
}

in Windows XP, it works fine ,the explorer recognized the file system
but in Windows 2000, after decrypting DBR, the Explorer doesn’t recognize the filesystem, and it dosen’t assign any drive letters to the disk.

So, How can I notifies the System, the Disk file system has been changed

IOCTL_DISK_UPDATE_PROPERTIES


Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

wrote in message news:xxxxx@ntdev…
> Hi,evryone
> In the Diskperf example, I modified the disk layout struct, and added a
partition maunally,
> But the DiskMgr,PartMgr and the explorer doesn’t know the disk layout has
been changed.
> How should I notify them?
> I have tried IoReportTargetDeviceChangeAsynchronous, but It doesn’t work
fine.
> What should I do?
> Thanks!
>

Windows 2000 doesn’t support this IOCTL_DISK_UPDATE_PROPERTIES,
Is there any other methods that can replace this IOCTL?