Creating a File Object to Handle I/O
When an application opens a file handle, the I/O manager creates a file object. The framework in turn creates a framework file object to represent the I/O manager's file object.
Unless the driver sets the UmdfFileObjectPolicy directive to AllowNullAndUnknownFileObjects, UMDF requires each I/O request to be associated with a file object. For more information about this directive, see Specifying WDF Directives in INF Files.
If your UMDF driver sends I/O that is independent of the application to the next driver in the stack (for example, during device initialization or to get notification of device events), the driver must create its own file object to associate with the request.
The following sections describe the differences between driver-created file objects and application-created file objects, and how the driver creates and uses a file object.