On IOCTL_DISK_UPDATE_PROPERTIES

This code should invalidate the cached partition table and re-enumerate the
device so that this operation is used in synchronizing the system view of
the specified disk device when the partition table of the disk is directly
modified.

I have two hard disks, disk 0 and 1. F drive is on disk 1. I tried two
cases:

  1. \.\F <file:> :
    2) \\.\PhysicalDrive1
    Using Createfile to get the handle, I call the
    bResult = DeviceIoControl(hDevice, // handle to device

    IOCTL_DISK_UPDATE_PROPERTIES,// dwIoControlCode

    NULL, // lpInBuffer

    0, // nInBufferSize

    NULL, // lpOutBuffer

    0, // nOutBufferSize

    &returnLength, // lpBytesReturned

    NULL);

    In the first case, I get error of wrong parameters. In the second case, I
    succeeded partially. Although I directly updated the meta data of F drive,
    the file explore of WinXP didn’t see that change. That means the cached
    partition talbe on F drive didn’t update.

    If that method didn’t work, can I use oplock level 2 to do so in the kernel
    mode via a file filter? According to the doc of oplock level 2, it should
    work.

    Appreciate any help.

    -Yuzhong


    This email has been scanned for all viruses by the MessageLabs SkyScan
    service. For more information on a proactive anti-virus service working
    around the clock, around the globe, visit http://www.messagelabs.com
    </file:>