Operation Flow with Double Device Stack

Warning

UMDF 2 is the latest version of UMDF and supersedes UMDF 1. All new UMDF drivers should be written using UMDF 2. No new features are being added to UMDF 1 and there is limited support for UMDF 1 on newer versions of Windows 10. Universal Windows drivers must use UMDF 2.

The archived UMDF 1 samples can be found in the Windows 11, version 22H2 - May 2022 Driver Samples Update.

For more info, see Getting Started with UMDF.

The following figure shows the flow of operations that occur to and from UMDF filter and functional drivers in a double device stack.

umdf i/o call sequence for umdf filter driver and umdf function driver.

Note   All I/O that is initiated by applications is routed through kernel mode as shown in the figures in the Architecture of the UMDF section, even though the preceding figure does not show this situation.

The UMDF filter and function drivers might also call the IWDFIoRequest::GetCreateParameters method if they require information about the file that is associated with the read request. The UMDF filter and function drivers might also call the IWDFIoRequest::GetReadParameters method if they require more information about the read request.

The UMDF functional driver calls the IWDFIoRequest::Complete or IWDFIoRequest::CompleteWithInformation method to signal to the filter driver that it is done with the read operation. The UMDF filter driver might also call methods of the IWDFIoRequestCompletionParams interface if it requires more information to complete the read request. The UMDF filter driver calls Complete or CompleteWithInformation to signal that the read operation is complete; the application can then access the read data.