# US 2014/0196059 A1 · Capability based device driver framework

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0196059 A1
- Document ID: US20140196059A1
- Status: Published application
- Kind: A1
- Application number: 13/734,716
- Filed: 2013-01-04
- Published: 2014-07-10
- Earliest claimed: 2013-01-04
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Yaron Weinsberg; Jinsong Yu; John Richardson; Christopher Wellington Brumme; Martin Taillefer
- Web page: https://patentgrep.com/patent/US20140196059A1

## CPC

- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/4403: {Processor initialisation}
- G06F 9/545: {where tasks reside in different layers, e.g. user- and kernel-space}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Enforcing limitations on hardware drivers. The method includes from a system kernel, assigning I/O resources to the system's root bus. From the root bus, the method further includes assigning a subset of the I/O resources to a device bus. Assigning a subset of the I/O resources to a device bus includes limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus. From the device bus, the method includes assigning I/O resources to a device through a device interface.

## Claims

### Claim 1

In a computing environment, a method of enforcing limitations on hardware drivers, the method comprising:
from a system kernel, assigning I/O resources to the system's root bus;
from the root bus, assigning a subset of the I/O resources to a device bus, wherein assigning a subset of the I/O resources to a device bus includes limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus; and
from the device bus, assigning I/O resources to a device through a device interface.

### Claim 2 (depends on 1)

The method of claim 1, wherein limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus is accomplished by implementing bus drivers in managed code.

### Claim 3 (depends on 1)

The method of claim 1, wherein assigning a subset of the I/O resources to a device bus comprises invoking a bus driver implemented in managed code.

### Claim 4 (depends on 1)

The method of claim 1, wherein assigning I/O resources to a device comprises invoking a device driver implemented in managed code.

### Claim 5 (depends on 1)

The method of claim 1, further comprising preventing other services and processes from attaching themselves to the device interface.

### Claim 6 (depends on 1)

The method of claim 1, wherein assigning a subset of the I/O resources to a device bus comprises assigning only the resources that will be needed by the device.

### Claim 7 (depends on 1)

The method of claim 1, further comprising terminating a driver for the device and the root bus reclaiming resources assigned to the device.

### Claim 8

A computer readable medium comprising computer executable instructions that when executed by one or more processors cause one or more processors to perform the following:
from a system kernel, assigning I/O resources to the system's root bus;
from the root bus, assigning a subset of the I/O resources to a device bus, wherein assigning a subset of the I/O resources to a device bus includes limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus; and
from the device bus, assigning I/O resources to a device through a device interface.

### Claim 9 (depends on 8)

The computer readable medium of claim 8, wherein limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus is accomplished by implementing bus drivers in managed code.

### Claim 10 (depends on 8)

The computer readable medium of claim 8, wherein assigning a subset of the I/O resources to a device bus comprises invoking a bus driver implemented in managed code.

### Claim 11 (depends on 8)

The computer readable medium of claim 8, wherein assigning I/O resources to a device comprises invoking a device driver implemented in managed code.

### Claim 12 (depends on 8)

The computer readable medium of claim 8, further comprising preventing other services and processes from attaching themselves to the device interface.

### Claim 13 (depends on 8)

The computer readable medium of claim 8, wherein assigning a subset of the I/O resources to a device bus comprises assigning only the resources that will be needed by the device.

### Claim 14 (depends on 8)

The computer readable medium of claim 8, further comprising terminating a driver for the device and the root bus reclaiming resources assigned to the device.

### Claim 15

A computing system comprising:
a plurality of I/O resources
a system root bus having the plurality of I/O resources assigned to it;
a device bus having a subset of the I/O resources assigned to the device bus from the root bus, wherein assigning the subset of the I/O resources to the device bus includes limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus; and
a hardware device having I/O resources assigned to it through a device through a device interface of the device bus.

### Claim 16 (depends on 15)

The system of claim 15, wherein limiting the device bus to only be able to assign I/O resources that are assigned to it by the root bus is accomplished by implementing bus drivers in managed code.

### Claim 17 (depends on 15)

The system of claim 15, wherein assigning a subset of the I/O resources to a device bus comprises invoking a bus driver implemented in managed code.

### Claim 18 (depends on 15)

The system of claim 15, wherein assigning I/O resources to a device comprises invoking a device driver implemented in managed code.

### Claim 19 (depends on 15)

The system of claim 15, wherein the system is configured to prevent other services and processes from attaching themselves to the device interface.

### Claim 20 (depends on 8)

The computer readable medium of claim 8, wherein only a subset of the I/O resources are assigned to the device bus by assigning only the resources that will be needed by the device.
