Tech Support > Microsoft Windows > Drivers > Storage Driver and Partition support
Storage Driver and Partition support
Posted by Ole Thomasen on September 12th, 2005


I have a bus driver, and I am trying to put on top a storage disk driver,
based on the code for storage\class in the WINDDK (3790.1890)

I can succesfully create the FDO device for the storage disk driver, and
have succesfully called IoRegisterDeviceInterface, specifying the
DiskClassGuid.

In the PNP code for IRP_MN_QUERY_DEVICE_RELATIONS I create the PDO device
(succesfully), and following that I call IoRegisterDeviceInterface,
specifying the PartitionClassGuid.

The problem is, that this call returns STATUS_INVALID_DEVICE_REQUEST. And I
cannot figure out why. I see that this status code means that my PDO is not
valid. What do I miss in my PDO?

If I register the PartitionClassGuid interface for the PDO of my bus driver,
the call succeeds. In that case I get the following IRP's after creation of
my partition PDO:

1. IRP_MN_QUERY_ID (responding)
2. IRP_MN_QUERY_CAPABILITIES (responding)
3. IRP_MN_QUERY_DEVICE_TEXT (passing down) - two of these
4. IRP_MN_QUERY_ID (responding) - 3 of these
5. IRP_MN_QUERY_RESOURCE_REQUIREMENTS (passing down)
6. IRP_MN_QUERY_BUS_INFORMATION (passing down)
7. IRP_MN_QUERY_RESOURCES (passing down)

Using DeviceTree I see my FDO and my PDO, the latter though only with
"StackSize 2". And the FDO is NOT attached to \Driver\PartMgr, only to
Verifier. What do I miss to be attached to the Partition Manager?

Any help on this is highly appreciated.

Ole Thomasen