Extensible Private Driver Interface for Vendor OID Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems face conflicts and unpredictable operations when independent hardware vendors develop devices with custom commands, as multiple vendors may use the same identification information for private OIDs, leading to unintended device interactions.

Innovation Solution

An extensible framework is introduced that uses a unique interface name space for each vendor, with private commands tagged by vendor-specific codes and interface identification information, ensuring that commands are routed to the correct device driver, even if developed independently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple independent hardware vendors use the same identification information for private OIDs, then device functionality and vendor independence are improved, but system conflicts and unpredictable operations occur

Engineering Contradiction:
Improvevendor independenceVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The identification space for private OIDs is segmented into vendor-specific namespaces. Each vendor is assigned a unique vendor code that prefixes their private OID definitions. This segmentation prevents conflicts by ensuring that OIDs from different vendors occupy distinct identification spaces, even if they use the same local identifiers within their namespace.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The operating system acts as an intermediary that manages the routing of private OIDs. It maintains a mapping between vendor codes and corresponding device drivers, intercepting private OID calls and routing them to the appropriate vendor's driver. This intermediary layer prevents direct conflicts by mediating all interactions between software components and hardware devices from different vendors.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If software components and drivers are developed independently at separate places and times, then development flexibility and modularity are improved, but routing commands to the correct driver becomes difficult

Engineering Contradiction:
Improvedevelopment flexibilityVSAvoidcommand routing
Core Design Contradiction:
Ease of manufactureVSDifficulty of detecting and measuring

Solution Approach 1:

Vendor codes are assigned to each hardware vendor in advance, before any private OID definitions are created. This preliminary assignment establishes a stable foundation for the identification system. When drivers are later developed independently, they can immediately use their pre-assigned vendor code to define their private OIDs without needing to coordinate with other vendors or the software component developers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The vendor code mechanism serves multiple functions: it uniquely identifies the vendor, namespaces their private OIDs, enables automatic routing to the correct driver, and allows software components to independently define commands without knowing specific driver implementations. This universal mechanism supports independent development while ensuring correct command routing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Device complexity

If private OIDs are defined without vendor-specific identification, then implementation simplicity is improved, but conflicts between different vendors' private commands occur

Engineering Contradiction:
Improveimplementation simplicityVSAvoidcommand conflicts
Core Design Contradiction:
Device complexityVSObject-generated harmful factors

Solution Approach 1:

Within each vendor's private OID namespace, simple local identifiers can be used, maintaining implementation simplicity for each vendor. However, the overall system quality is enhanced by prefixing these local identifiers with vendor-specific codes. This allows each vendor to maintain simple implementation while the system as a whole avoids conflicts through the structured namespace hierarchy.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8826307B2Extensible private driver interface
Publication Date: 2014.09.02 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8826307B2 patent drawing
  • US8826307B2 patent drawing
  • US8826307B2 patent drawing

AI summary

A computer with an extensible framework for facilitating communication between a software component installed on the computer and a device driver that executes functions in response to vendor-specific command objects (e.g., OIDs). The framework defines data structures and a standardized format for defining and implementing private interfaces. After selecting a private interface that is commonly supported by a software component and a driver, a private communication path may be established by an operating system component to facilitate the transfer of command information from the software component to the driver. The private communication path allows commands packaged as OIDs to be routed from software components to intended drivers. By defining private interfaces which route commands from software components to intended drivers, the extensible framework mitigates potential incompatibilities that may arise when drivers created by different vendors include OIDs with the same OID value.