Поделиться через


Kernel-Mode Video Transport

This topic describes kernel-mode video transport as it exists on the Microsoft Windows 2000 and later operating systems.

Kernel-mode video transport refers to a new Microsoft DirectDraw component in ring 0 (kernel mode) that enhances video functionality. This component accesses the DxApi interface. This interface is added to the video miniport driver under Windows 2000 and later operating systems.

Windows 2000 and Later

Kernel-mode video transport refers to a Microsoft DirectDraw component that a client, such as Microsoft DirectShow, can use to enhance video functionality. A primary role of this functionality is to call the miniport driver to tell it to perform hardware video port and overlay flips when V-sync occurs. This capability can support up to ten buffers without encountering hardware limitations, as long as the hardware video port supports the V-sync interrupt request (IRQ). This capability is used automatically by the versions of DirectDraw supplied with Microsoft DirectX 5.0 and later versions when autoflipping is specified by the client and the hardware cannot autoflip.

The kernel-mode video transport also ensures enhanced capture support. Under Microsoft Windows 98/Me and Microsoft Windows 2000 and later, the WDM-based video capture driver runs in kernel mode, with direct access to the frame buffer. The capture driver can "manually" flip overlays. The Windows 2000 and later miniport video transport driver can provide V-sync notification from the hardware video port or display; it can also get field polarities, which can be useful when capturing vertical blanking interval (VBI) data.

Although the primary purpose of the kernel-mode driver is to enhance hardware video port autoflipping capabilities, it also supports video bus masters, which can write data while in kernel mode. The bus master can be notified before losing the surface because of a mode change, or because a full-screen Command Prompt instance is launched. Because the new driver support allows a bus master to be called before the changes occur, the bus master can shut off without causing a problem.