Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
AssigneeMicrosoft Corporation
InventorsRichard C. Machin, Jameel Hyder
Life of this patent
Estimating the term…
Abstract
The present invention allows data to be accessible by kernel mode filters and other processing components while simultaneously allowing connection-oriented device drivers to be written in a simplified fashion in an integrating component environment. Furthermore, this is done without requiring proprietary mechanisms in the device driver itself in order to place the data stream into the kernel mode filter environment. This is done by providing a special raw data client transport that is written to the transport interface of an integrating component. Driver development is simplified by programming to the driver interface of the integrating component in a standardized fashion.
Claims23
In a computer that includes one or more kernel mode filters operating in a kernel mode, an application operating in a user mode, and a connection-oriented device driver, a method for using the application to establish a data channel entirely in the kernel mode between the connection-oriented device driver and the kernel mode filters, enabling the kernel mode filters to access connection-oriented data, the method comprising the acts of:
- establishing a connection between the application operating in the user mode and the connection-oriented device driver, wherein the connection-oriented device driver controls connection-oriented hardware that interfaces with a network;
- after establishing the connection, said application causing a data channel associated with the connection to be established entirely in the kernel mode between the connection-oriented device driver and a raw data transport that operates in the kernel mode and is associated with the kernel mode filters;
- and
- receiving, at the raw data transport, connection-oriented data that has been redirected from said connection to said data channel and transmitting the data to said one or more kernel mode filters, such that said one or more kernel mode filters receive the connection-oriented data from the network without the data passing into the user mode.
In a computer that includes one or more kernel mode filters operating in a kernel mode, an application operating in a user mode, and a connection-oriented device driver, a method for using the application to establish a data channel entirely in the kernel mode between the connection-oriented device driver and the kernel mode filters, enabling the kernel mode filters to access connection-oriented data, the method comprising the acts of:
- providing an integrating component at the computer, the integrating component having:
- a first abstracted interface for communicating with a raw data transport that operates in the kernel mode and is associated with the kernel mode filters;
- a second abstracted interface for communicating with the connection-oriented device driver, wherein the connection-oriented device driver controls connection-oriented hardware that interfaces with a network;
- and
- a connection interface for communicating with the application;
- establishing a connection between the application and the connection-oriented device driver;
- after establishing the connection, said application causing a data channel associated with the connection to be established entirely in the kernel mode between the connection-oriented device driver and the raw data transport;
- and
- redirecting connection-oriented data from said connection to said data channel and transmitting the data to said one or more kernel mode filters, wherein the data is transmitted in the data channel from the connection-oriented device driver to the integrating component as if, from the perspective of the connection-oriented device driver, the data were being transmitted to the application.
A computer program product for implementing, in a computer that includes one or more kernel mode filters operating in a kernel mode, an application operating in a user mode, and a connection-oriented device driver, a method for using the application to establish a data channel entirely in the kernel mode between the connection-oriented device driver and the kernel mode filters, enabling the kernel mode filters to access connection-oriented data, the computer program product comprising:
- a computer-readable medium carrying computer-executable instructions for implementing the method, the computer-executable instructions including program code means for:
- establishing a connection between the application operating in the user mode and the connection-oriented device driver, wherein the connection-oriented device driver controls connection-oriented hardware that interfaces with a network;
- after establishing the connection, said application causing a data channel associated with the connection to be established entirely in the kernel mode between the connection-oriented device driver and a raw data transport that operates in the kernel mode and is associated with the kernel mode filters;
- and
- receiving, at the raw data transport, connection-oriented data that has been redirected from said connection to said data channel and transmitting the data to said one or more kernel mode filters, such that said one or more kernel mode filters receive the connection-oriented data from the network without the data passing into the user mode.
In a computer having an operating system that has a kernel mode of operation and a user mode of operation, a method for creating a data channel entirely in the kernel mode from connection-oriented hardware to kernel mode filters, the method comprising:
- providing an integrating component at the computer for controlling a connection-oriented device driver, the integrating component having:
- an abstracted interface for transport protocol drivers;
- an abstracted interface for connection-oriented device drivers;
- and
- a connection interface for communicating with an application operating in user mode at the computer;
- registering a raw data transport component that operates in the kernel mode with the integrating component over the abstracted interface for transport protocol drivers;
- making a connection between the application and a connection-oriented device driver by associating the application with the connection interface and associating the connection-oriented device driver with the abstracted interface for connection-oriented device drivers;
- receiving and storing, by the raw data transport component, a connection identifier associated with the connection;
- again receiving the connection identifier at the raw data transport component and determining that the connection identifier has been stored by the raw data transport component;
- and
- based on said determination:
- establishing a data channel entirely in kernel mode between the raw data transport component, the integrating component, and the connection-oriented device driver;
- and
- receiving at the raw data transport component data that has been redirected from said connection to said data channel and transmitting the data to other kernel mode filters.
Dependencies are inferred from the claim text.