UMDF Based on COM Subset

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 framework objects and interfaces are based on the Component Object Model (COM) for the following reasons:

  • COM is familiar to many applications programmers.

  • C++ is the preferred language for programming COM applications.

  • COM interfaces enable logical groupings of functions, so that the device driver interface (DDI) is easy to understand and navigate.

  • Using COM enables the DDI to extend and evolve without requiring existing driver DLLs to be recompiled.

  • Numerous tools, including Microsoft Visual Studio and active template library (ATL), support COM-based applications and objects.

The framework uses only a small subset of COM; it does not depend on the entire COM infrastructure and runtime library. Instead, the framework uses only the query-interface and reference-counting features. Every framework interface derives from IUnknown and therefore supports the QueryInterface, AddRef, and Release methods by default. The AddRef and Release methods manage object lifetime. The QueryInterface method enables other components to determine which interfaces the driver supports.