Two question:
- As we known, there PDO and FDO and also FiDO.
PDO is physical device object
FDO is functional device object
FiDo is filter device object
In fact, FDO and FiDO is more or less the same property Device object, which differ from one is create by functional driver, and the other is by filter driver.
While I known, that Bus driver create PDO for each device on the bus, and then functional driver create FDO based on the PDO.
For example:
USB hub driver create PDO for each USB device/hub connect on the hub.
Then USB device functional driver then create FDO for each device/hub connect on the hub.
And same for PCI/PCIe driver:
PCI driver create PDO for the usb host, such as ehci or o/uhci, xhci.
then xhci functional driver create FDO for the PDO.
But I still now very clear:
Why PDO is needed, why MS originally design PDO, what’s MS’s original opinion?
What’s the function of PDO?
- RAMDisk
My question is
-
How to install the software-only driver?
The documents only supply instruction on Winxp and W2K, but not onWIN7. -
By what method, RAMDisk driver could be lower of the drivers that could send:
IOCTLs such as:
IOCTL_DISK_GET_PARTITION_INFO
IOCTL_DISK_GET_MEDIA_TYPES
IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL_DISK_CHECK_VERIFY
IOCTL_DISK_IS_WRITABLE
IOCTL_DISK_SET_PARTITION_INFO
IOCTL_MOUNTMGR_QUERY_POINTS
IOCTL_MOUNTDEV_QUERY_DEVICE_NAME
FT_BALANCED_READ_MODE
IOCTL_DISK_FORMAT_TRACKS
I think it is by:
FILE_DEVICE_DISK in following code, right?
**************************************************
//
// Create the device object
//
status = IoCreateDevice(
DriverObject,
sizeof(DEVICE_EXTENSION),
&uniDeviceName,
FILE_DEVICE_DISK , // old value = FILE_DEVICE_VIRTUAL_DISK , // corrected proposed by MS
(FILE_DEVICE_SECURE_OPEN),
FALSE, // This isn’t an exclusive device
&functionDeviceObject
);
**************************************************
Because I have only WIN7 SYSTEM.
So I could install the RAMDisk driver onto it.
After successfully installation, what’s driver is on top of the RAMDISK driver in the driver stack?