Filter Driver for Simultaneous GDI and DirectX Data Acquisition
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for acquiring Windows GDI and DirectX data simultaneously in real-time remote applications are inefficient, often prohibit DirectX data acquisition, or are complex and difficult to implement, especially in maintaining synchronous and rapid graphics output.
Innovation Solution
A method using a filter driver transparent to the graphics device interface engine and DirectX kernel, intercepting DirectDraw and Direct3D operations through frame switch and bit block transfer, and update interfaces like DDFlip and DDBlit, while maintaining DirectX functionality, allowing for simultaneous interception of GDI and DirectX data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If a hooker is used to hook each application in user mode to filter screen change operations, then GDI data can be acquired, but the acquisition efficiency is low and synchronization is complicated
Solution Approach 1:
The patent introduces a filter driver as an intermediary component installed between the graphics driver and display device. This filter driver intercepts all graphics operations at the driver level, acting as a mediator that captures both GDI and DirectX data streams simultaneously without requiring application-level hooks, thereby resolving the efficiency and synchronization problems
Solution Approach 2:
The patent transitions from user-mode application hooking to kernel-mode driver interception, moving the data acquisition point from the application layer to the system driver layer. This dimensional change in the system architecture enables simultaneous interception of multiple graphics data streams with much higher efficiency
2Productivity
If the Mirror system is used to acquire synchronous screen changes efficiently, then GDI data acquisition is improved, but DirectX application is automatically prohibited
Solution Approach 1:
The patent segments the graphics data stream into multiple types (GDI data, DirectDraw data, Direct3D data) and intercepts them separately through the filter driver. By segmenting the interception targets, the system can efficiently capture synchronous changes while simultaneously supporting both GDI and DirectX applications without mutual prohibition
Solution Approach 2:
The filter driver is designed with multi-functionality to handle both traditional GDI graphics operations and modern DirectX operations. It implements universal interception capabilities that work across different graphics APIs, allowing the system to maintain DirectX functionality while enabling efficient synchronous acquisition of all graphics data
3Ease of operation
If DirectX COM interface is intercepted in user mode to acquire DirectX data, then DirectX data acquisition is enabled, but GDI data cannot be processed
Solution Approach 1:
The filter driver serves as a universal intermediary that intercepts graphics operations before they reach the display device. It can identify and capture both DirectX COM interface calls and GDI operations, converting them into a unified data format that can be processed simultaneously, thereby enabling dual-capability data acquisition
4Adaptability or versatility
If a filter driver is used to acquire GDI data while maintaining DirectX interface availability, then both GDI and DirectX data can be intercepted, but the system becomes complex and difficult to implement
Solution Approach 1:
The patent merges the interception of GDI and DirectX data streams into a single filter driver implementation. By combining multiple data acquisition functions into one unified driver, the system reduces implementation complexity compared to using multiple separate hooks or drivers, while maintaining the capability to intercept both GDI and DirectX operations
Data Source
AI summary
A method for acquiring graphics device interface data and DirectX data by use of a filter driver transparent to transparent to a graphics device interface engine, DirectX kernel and a real display driver is disclosed, the method comprises steps of: updating the graphics device interface, and acquiring the graphics device interface data by use of a corresponding graphics device interface function in the filter driver; acquiring, for DirectDraw in DirectX, DirectDraw application and video update data by intercepting frame switch and bit block transfer operations of DirectDraw part; acquiring, for Direct3D in DirectX, data of Direct3D application by intercepting the update interface of Direct3D part. With the method of present invention, an integral acquisition of Windows GDI and DirectX data can be achieved while DirectX function remains available.


