How is the file systems device object found?
Each time a user performs an open operation (via ZwCreateFile) they must either specify an absolute path name or they must specify a path name relative to an existing open file or directory. In the case of a relative open, the I/O Manager “knows” to which device it should send the requests, because the existing open file or directory already references the correct file system device instance. Thus, the request can be sent directly to that device. In the case of an absolute open, the I/O Manager must first start by parsing the name via the Object Manager. The Object Manager resolves a portion of the name that leads to a device object and then passes the balance of the name (the portion that has not yet been resolved) back to the I/O Manager, along with a pointer to the device object it located during its portion of name resolution. The I/O Manager then examines the device object. If the device object has a valid pointer to a volume parameter block (VPB), the I/O Manager uses the DeviceO