General I/O Targets in UMDF

[This topic applies to UMDF 1.x.]

General I/O targets, which can be either local or remote, are I/O targets that do not support special, device-specific data formats, such as USB request blocks. Before drivers send data to a general I/O target, they must put data into a write buffer in a format that the I/O target and device can interpret. Likewise, when drivers read data from a general I/O target, the drivers must be able to interpret the contents of data buffers that they receive from the target.

Local I/O Targets

Drivers often send I/O requests to the next-lower driver in the driver stack. Therefore, each UMDF-based driver has a default I/O target for each device, which is the device's next-lower driver. The default I/O target for the lowest-level UMDF-based driver is the kernel-mode reflector.

Sometimes a UMDF-based driver must send I/O requests to a file-handle-based I/O target, such as a file or a network socket. Therefore, the framework also provides file-handle-based I/O target objects.

Both the default I/O target and file-handle-based I/O targets are called local I/O targets, because UMDF-based drivers use these targets to send I/O requests to devices that the driver stack supports.

Remote I/O Targets

Occasionally, a driver must send an I/O request to a different driver stack. Therefore, the framework also provides remote I/O targets, which consist of all of the I/O targets except local I/O targets.

A remote I/O target might be a device that the driver stack does not support, a file on that device, or a device interface for that device.

The following sections describe how to initialize and use a general I/O target:

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft