Volume Manager Problem with my Disk Driver.

I have narrowed down my problem. The following call is failing with status
(STATUS_INVALID_DEVICE_REQUEST).

Status = IoRegisterDeviceInterface(pDeviceObject,
(LPGUID)&PartitionClassGuid, NULL,

&pDevExtHdr->pWdmDevExt->ifSymLinkName);

I have used this many a times before without a problem. In fact My
DiskClassGuid GUID is called with this exact same routine and succeeds. I
assume a DeviceObject->Flags problem but have had no luck in solving this
problem.

My flags are set to the following.
pNewDeviceObject->Flags |= DO_POWER_PAGABLE;
pNewDeviceObject->Flags |= DO_DIRECT_IO;
pNewDeviceObject->Flags |= DO_BUS_ENUMERATED_DEVICE; // I have even tried
this call without this flag value set.
pNewDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;

I am using a PDO for the partition object. The device type is
FILE_DISK_DEVICE with no Device Characteristics set. The Device Name of the
Device Object is that long name you give to partitions with the start and
length of the partition in the name (EX:
L"\Device\Harddisk%d\DP(%d)%#I64x-%#I64x+%1x").

I would really appreciate some help.
Thanks In Advance,
Joe

The device object passed to IoRegisterDeviceInterface() has to be a PDO.
So, have you established your partition DO as a PDO by exposing it to
PnP Manager by responding to a bus relations query IRP on some bus devnode
(such as the raw disk devnode)?


Dave Cox
Hewlett-Packard Co.
HPSO/SMSO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Joe Moriarty [mailto:xxxxx@east.sun.com]
Sent: Wednesday, October 11, 2000 4:04 PM
To: NT Developers Interest List
Subject: [ntdev] Volume Manager Problem with my Disk Driver.

I have narrowed down my problem. The following call is failing with status
(STATUS_INVALID_DEVICE_REQUEST).

Status = IoRegisterDeviceInterface(pDeviceObject,
(LPGUID)&PartitionClassGuid, NULL,

&pDevExtHdr->pWdmDevExt->ifSymLinkName);

I have used this many a times before without a problem. In fact My
DiskClassGuid GUID is called with this exact same routine and succeeds. I
assume a DeviceObject->Flags problem but have had no luck in solving this
problem.

My flags are set to the following.
pNewDeviceObject->Flags |= DO_POWER_PAGABLE;
pNewDeviceObject->Flags |= DO_DIRECT_IO;
pNewDeviceObject->Flags |= DO_BUS_ENUMERATED_DEVICE; // I have even tried
this call without this flag value set.
pNewDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;

I am using a PDO for the partition object. The device type is
FILE_DISK_DEVICE with no Device Characteristics set. The Device Name of the
Device Object is that long name you give to partitions with the start and
length of the partition in the name (EX:
L"\Device\Harddisk%d\DP(%d)%#I64x-%#I64x+%1x").

I would really appreciate some help.
Thanks In Advance,
Joe


You are currently subscribed to ntdev as: david_cox2@hp.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

Thanks for the response Dave.

Yep I sure have done all the necessary PnP responses and everything is
succeeding. When you say a raw disk devnode are you referring to setting
the ‘RawDeviceOK’ to true in the Capabilities structure. If that is the
case then yes that is true. By the way, it started to work. I guess I’ve
been stuck debugging buggy code during installation that something must of
stuck permanently. I decided to do start a fresh install and things started
working. In any case I am still having problems during GUI mode
installation of finding the device name/symbolic link name. During Txtmode
installation everything gets copied off of the CD to the harddrive temporary
directories with no problem. But during GUI mode, the first thing the
installation tries to do is find the temporary directories and files on the
hard drive. I immediately get a pop up window signifying a Files Needed
prompt with a display path of the following:

GLOBALROOT\Device\HarddiskVolume1$WIN_NT$.~LS\i386.

I know the volume manager’s device name is \Device\HarddiskVolume%d for each
partition. Here is a neat tidbit of information. If I replace the above
string with

c:$WIN_NT$.~LS\i386

then the files are found. Any ideas anyone. I believe this to be an issue
with volume manager. What it could be I don’t know.

Thanks In Advance for the help.
Joe

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of COX,DAVID
(HP-Roseville,ex1)
Sent: Wednesday, October 11, 2000 1:31 PM
To: NT Developers Interest List
Subject: [ntdev] RE: Volume Manager Problem with my Disk Driver.

The device object passed to IoRegisterDeviceInterface() has to be a PDO.
So, have you established your partition DO as a PDO by exposing it to
PnP Manager by responding to a bus relations query IRP on some bus devnode
(such as the raw disk devnode)?


Dave Cox
Hewlett-Packard Co.
HPSO/SMSO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Joe Moriarty [mailto:xxxxx@east.sun.com]
Sent: Wednesday, October 11, 2000 4:04 PM
To: NT Developers Interest List
Subject: [ntdev] Volume Manager Problem with my Disk Driver.

I have narrowed down my problem. The following call is failing with status
(STATUS_INVALID_DEVICE_REQUEST).

Status = IoRegisterDeviceInterface(pDeviceObject,
(LPGUID)&PartitionClassGuid, NULL,

&pDevExtHdr->pWdmDevExt->ifSymLinkName);

I have used this many a times before without a problem. In fact My
DiskClassGuid GUID is called with this exact same routine and succeeds. I
assume a DeviceObject->Flags problem but have had no luck in solving this
problem.

My flags are set to the following.
pNewDeviceObject->Flags |= DO_POWER_PAGABLE;
pNewDeviceObject->Flags |= DO_DIRECT_IO;
pNewDeviceObject->Flags |= DO_BUS_ENUMERATED_DEVICE; // I have even tried
this call without this flag value set.
pNewDeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;

I am using a PDO for the partition object. The device type is
FILE_DISK_DEVICE with no Device Characteristics set. The Device Name of the
Device Object is that long name you give to partitions with the start and
length of the partition in the name (EX:
L"\Device\Harddisk%d\DP(%d)%#I64x-%#I64x+%1x").

I would really appreciate some help.
Thanks In Advance,
Joe


You are currently subscribed to ntdev as: david_cox2@hp.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)


You are currently subscribed to ntdev as: xxxxx@east.sun.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)