# US 2014/0195834 A1 · High throughput low latency user mode drivers implemented in managed code

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

- Number: US 2014/0195834 A1
- Document ID: US20140195834A1
- Status: Published application
- Kind: A1
- Application number: 13/734,718
- Filed: 2013-01-04
- Published: 2014-07-10
- Earliest claimed: 2013-01-04
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Yaron Weinsberg; Jinsong Yu; Shaun David Cox; Stanislav Oks; Galen C. Hunt; Christopher Wellington Brumme; John Richardson
- Web page: https://patentgrep.com/patent/US20140195834A1

## CPC

- G06F 9/4411: {Configuring for operating with peripheral devices; Loading of device drivers}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Implementing a safe driver that can support high throughput and low latency devices. The method includes receiving a hardware message from a hardware device. The method further includes delivering the hardware message to one or more driver processes executing in user mode using a zero-copy to allow the one or more driver processes to support high throughput and low latency hardware devices.

## Claims

### Claim 1

In a computing environment, a method of implementing a type safe driver that can support high throughput and low latency devices, the method comprising:
receiving data from a hardware device; and
delivering the data to one or more driver processes executing in user mode using a zero-copy to allow the one or more driver processes to support high throughput and low latency hardware devices.

### Claim 2 (depends on 1)

The method of claim 1, wherein delivering the data is performed without pre-empting the kernel mode.

### Claim 3 (depends on 1)

The method of claim 1, further comprising limiting the amount of time a processor spends in kernel mode.

### Claim 4 (depends on 1)

The method of claim 1, wherein the driver process is implemented in managed code.

### Claim 5 (depends on 1)

The method of claim 1, further comprising an I/O interrupt manager implemented in user mode registering user mode device drivers on interrupts.

### Claim 6 (depends on 5)

The method of claim 5, wherein the I/O interrupt manager dispatches interrupts to driver processes.

### Claim 7 (depends on 1)

The method of claim 1, further comprising implementing drivers as single threaded processes.

### Claim 8 (depends on 1)

The method of claim 1, wherein the one or more driver processes are implemented without limitation on what user mode libraries can be used to implement the one or more driver processes.

### Claim 9

In a computing environment, a method of implementing a type safe driver that can support high throughput and low latency devices, the method comprising:
receiving data from a from a driver process executing in user mode; and
delivering the data to a hardware device using zero-copy to allow the one or more driver processes to support high throughput and low latency hardware devices.

### Claim 10 (depends on 9)

The method of claim 9, wherein delivering data message is performed without pre-empting the kernel mode.

### Claim 11 (depends on 9)

The method of claim 9, further comprising limiting the amount of time a processor spends in kernel mode.

### Claim 12 (depends on 9)

The method of claim 9, wherein the driver process is implemented in managed code.

### Claim 13 (depends on 9)

The method of claim 9, further comprising an I/O interrupt manager implemented in user mode registering user mode device drivers on interrupts.

### Claim 14 (depends on 9)

The method of claim 9, wherein the I/O interrupt manager dispatches interrupts to driver processes.

### Claim 15 (depends on 9)

The method of claim 9, further comprising implementing drivers as single threaded processes.

### Claim 16 (depends on 9)

The method of claim 9, wherein the one or more driver processes are implemented without limitation on what user mode libraries can be used to implement the one or more driver processes.

### Claim 17

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:
receiving data from a from a driver process executing in user mode; and
delivering data to a hardware device using zero-copy to allow the one or more driver processes to support high throughput and low latency hardware devices.

### Claim 18 (depends on 17)

The computer readable medium of claim 17, wherein delivering the data is performed without pre-empting the kernel mode.

### Claim 19 (depends on 17)

The computer readable medium of claim 17, further comprising limiting the amount of time a processor spends in kernel mode.

### Claim 20 (depends on 17)

The computer readable medium of claim 17, wherein the driver process is implemented in managed code.
