USB Video Class (UVC) driver implementation checklist
Step 1: Get started with USB Video Class (UVC) using documentation from USB.org and Microsoft
Use these links to get acquainted with UVC:
Access the USB class documentation (non-UVC specific) at USB.org
Download the USB Video Class 1.5 documentation from USB.org
Review the USB Video Class driver overview topic
Step 2: Implement the platform-supplied Device MFT
The platform-supplied Device MFT is for RGB USB cameras. It provides common functionality, for example, face detection based ROI for 3A prioritization (if the camera firmware supports ROI control specified in UVC 1.5 standard).
To enable this functionality, you need to ensure that the camera supports ROI. If you need to disable this functionality, you must do so through registry keys (for example, an INF file entry).
Step 3: Implement the custom Device MFT and MFT0 for your device
Device MFT is a user-mode component of UVC. You can insert this component to add extensions and differentiators to the UVC.
Review the Device MFT design guide.
Review the Device MFT sample code.
Review relevant information on MFT0 in the Creating a camera driver MFT for a UWP device app topic.
Note
The Device MFT model supersedes the MFT0 model. While Windows continues to support the MFT0 model, we encourage you to use Device MFT instead, as it simplifies the design and supports more functionality and scalability.
Step 4: Implement Microsoft-specified UVC extensions
Method 2 still image capture:
USB.org documentation:
- Review the section for Method 2 that begins on page 17 of the UVC 1.5 Class specification.pdf you downloaded in Step 1 above.
Microsoft-specific documentation:
- Review section 2.2.1 and 2.2.2 in the Microsoft extensions to USB Video Class 1.5 specification.
Step 5: Test your UVC implementation to ensure it passes HLK tests and meets required functionality and performance
Run camera-specific Device.Streaming HLK tests
Ensure the camera meets any requirements and passes HLK tests for other products that the camera must also be compliant with (for example, Skype, Windows Hello, and so on).