Named Shared Memory for Cross-Architecture Printer Data Exchange
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for communicating vendor-specific information between an application program and a printer driver face issues, such as the inability to generate return data using the ExtEscape function with XPS printer drivers and the lack of vendor-specific APIs for 32-bit applications on 64-bit Windows, as well as limitations in providing vendor-specific information by printer drivers bundled with Windows.
Innovation Solution
A method that uses a named object to store and communicate vendor-specific information between an application program and a printer driver, allowing the application program to access this information without relying on vendor-specific APIs or rendering modules, and utilizing named shared memory with the ExtEscape function to facilitate data exchange between different operating conditions and processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the ExtEscape function is used to communicate vendor-specific information between application program and printer driver, then data exchange capability is improved, but the function fails to generate return data when used with XPS printer drivers
Solution Approach 1:
The patent introduces a named object as an intermediary between the application program and printer driver. Instead of directly using ExtEscape which fails with XPS drivers, the system creates a named object that both parties can access. The application program writes requests to the named object, and the printer driver writes responses to the same named object, bypassing the broken ExtEscape return data path while maintaining communication capability.
2Adaptability or versatility
If vendor-specific APIs are provided by printer driver modules, then access to vendor-specific information is improved, but additional processes or services are required to maintain these APIs
Solution Approach 1:
The patent eliminates the need for separate vendor-specific API modules by having the printer driver itself manage the named object directly. The printer driver monitors the named object for requests and responds appropriately without requiring external API modules or additional processes. This self-service approach reduces system complexity while maintaining full access to vendor-specific information.
3Adaptability or versatility
If 64-bit printer driver is used on 64-bit Windows system, then system compatibility is improved, but the driver cannot provide vendor-specific information to 32-bit application programs
Solution Approach 1:
The patent uses a named object that serves as a universal communication interface accessible by both 32-bit and 64-bit processes on Windows. The 64-bit printer driver writes vendor-specific information to the named object, and the named object's interface is designed to be accessible from both 32-bit and 64-bit application programs, thus maintaining system compatibility while preventing information loss across architecture boundaries.
Data Source
AI summary
An information processing apparatus and method. The apparatus comprises a generation unit configured to generate a named shared memory that can be accessed by both an application which runs with a first bit number and a printer driver which runs with a second bit number different from the first bit number. A storing unit is configured to store information in the named shared memory generated by the generation unit, and an acquisition unit is configured to acquire the information stored by the storing unit from the named shared memory generated by the generation unit. The storing unit is executed by the printer driver, and the acquisition unit is executed by the application.


