← Back to Patent Explorer
US6016515A Expired / Lapsed US ⏱️ 0.0 years remaining

Method, computer program product, and data structure for validating creation of and routing messages to file object

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-04-04
•
Granted: 2000-01-18
•
Expires: 2017-04-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method, computer program product, and data structure is provided overcome excess code development associated with developing device drivers that are hierarchically related and provides standardization to driver developers by listing in the private area of a device object types of file objects, including specific IRP handlers associated therewith, that may be created under that device object to thereby provide a device object context. In like manner, each file object has listed in the private area types of other file objects, again including specific IRP handlers associated therewith, that may be created under that particular file object to thereby provide a file object context. The default handler for a driver object points to a multiplexing function that will process an incoming IRP based on the available context information to "route" the IRP to the appropriate handler. Each file object has reference to a plurality of dispatch function references that are used by the IRP handlers to fulfill a particular request. A request to create a file object will also be validated to assure that only file objects of the appropriate type may be created in hierarchy, again according to the context information.

Inventors

  • 👤 George H. J. Shaw
  • 👤 Bryan A. Woodruff

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 04:27
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/20

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 312 words
In a computer operating system that includes a) a driver object for managing a software driver as a system resource, b) one or more device objects each of which define a software driver's functionality and availability to other operating system resources and each of which includes a private data area containing a validation table with valid file object types and associated create handlers for each file object type, and c) one or more file objects for managing invocation of an operating system resource as specified by a particular device object and each of which includes a private data area containing an IRP request handler table and a validation table with valid file object types and associated create handlers for each file object type, and wherein the file objects are hierarchically related to parent objects that may consist of either device objects or other file objects, a method of standardizing i) validation of creation of, or ii) routing of messages, to file objects in order to eliminate the need for third party driver developers to write validation or routing code for such drivers, the method comprising steps for: receiving at a driver object a request to either create a particular type of file object or to route a message to a particular type of file object; sending the received request to a multiplexing dispatch function which is resident as part of the operating system, as opposed to being provided by a third party driver developer; the multiplexing dispatch function then accessing a private data area of a parent object for the purpose of searching for said particular type of file object for which the creation or routing request was sent; and if said particular type of file object is found, accessing the appropriate create handler for said particular type of file object, and if not, returning an error message and rejecting the request.
Claim 2
Dependent Claim 312 words
In a computer operating system that includes a) a driver object for managing a software driver as a system resource, b) one or more device objects each of which define a software driver's functionality and availability to other operating system resources and each of which includes a private data area containing a validation table with valid file object types and associated create handlers for each file object type, and c) one or more file objects for managing invocation of an operating system resource as specified by a particular device object and each of which includes a private data area containing an IRP request handler table and a validation table with valid file object types and associated create handlers for each file object type, and wherein the file objects are hierarchically related to parent objects that may consist of either device objects or other file objects, a method of standardizing i) validation of creation of, or ii) routing of messages, to file objects in order to eliminate the need for third party driver developers to write validation or routing code for such drivers, the method comprising steps for: receiving at a driver object a request to either create a particular type of file object or to route a message to a particular type of file object; sending the received request to a multiplexing dispatch function which is resident as part of the operating system, as opposed to being provided by a third party driver developer; the multiplexing dispatch function then accessing a private data area of a parent object for the purpose of searching for said particular type of file object for which the creation or routing request was sent; and if said particular type of file object is found, accessing the appropriate create handler for said particular type of file object, and if not, returning an error message and rejecting the request.
Claim 3
Dependent Claim 33 words
A method as recited in claim 1 wherein the request received at the driver object includes the information needed to determine if the parent object is a file object or a device object.
Claim 4
Dependent Claim 21 words
A method as recited in claim 1 wherein the request received at the driver object is implemented as a data structure.
Claim 5
Dependent Claim 25 words
A method as recited in claim 1 wherein the multiplexing dispatch function determines whether the parent object is a file object or a device object.
Claim 6
Dependent Claim 20 words
A method as recited in claim 1 wherein the multiplexing dispatch function is a single function which processes IRP requests.
Claim 7
Dependent Claim 28 words
A method as recited in claim 1 wherein the multiplexing dispatch function is one of several multiplexing functions germane to the particular request received by the driver object.
Claim 8
Dependent Claim 35 words
A method as recited in claim 3 wherein the data structure includes a handle to the parent object (our spec only indicates handle passes for parent file object but it would have to for either).
Claim 9
Dependent Claim 37 words
A method as recited in claim 4 wherein if the parent object is a file object, the multiplexing dispatch function uses the private data area of the parent file object to reference an IRP request handler table.
Claim 10
Dependent Claim 35 words
A method as recited in claim 1 wherein if the parent object is a device object, the multiplexing dispatch function uses the private data area of the parent device object to reference a validation table.
Claim 11
Dependent Claim 29 words
A method as recited in claim 8 wherein if the request is a creation request, the multiplexing function access a validation table referenced in the IRP request handler table.
Claim 12
Dependent Claim 35 words
A method as recited in claim 1 wherein the multiplexing function compares a string in the request to create a particular type of file object with file object type string contained in the validation table.
Claim 13
Dependent Claim 33 words
A method as recited in claim 10 wherein the multiplexing function compares a string in the request to create a particular file object with file object type strings contained in the validation table.
Claim 14
Dependent Claim 38 words
A method as recited in claim 10 wherein the multiplexing function compares an index value in the request to create a particular type of file object with a range of permissible index values contained in the validation table.
Claim 15
Dependent Claim 38 words
A method as recited in claim 1 wherein the multiplexing function compares an index value in the request to create a particular type of file object with a range of permissible index values contained in the validation table.
Claim 16
Dependent Claim 342 words
In a computer operating system that includes a) a driver object for managing a software driver as a system resource, b) one or more device objects each of which define a software driver's functionality and availability to other operating system resources and each of which includes a private data area containing a validation table with valid file object types and associated create handlers for each file object type, and c) one or more file objects for managing invocation of an operating system resource as specified by a particular device object and each of which includes a private data area containing an IRP request handler table and a validation table with valid file object types and associated create handlers for each file object type, and wherein the file objects are hierarchically related to parent objects that may consist of either device objects or other file objects, a computer program product for implementing a method of standardizing i) validation of creation of, or ii) routing of messages to, file objects in order to eliminate the need for third party driver developers to write validation or routing code for such drivers, the computer program product comprising: a computer readable medium for carrying computer program code means for implementing said method, and wherein said method is comprised of the steps for; receiving at a driver object a request to either create a particular type of file object or to route a message to a particular type of file object; sending the received request to a multiplexing dispatch function which is resident as part of the operating system, as opposed to being provided by a third party driver developer; the multiplexing dispatch function then accessing a private data area of a parent object for the purpose of searching for said particular type or file object for which the creation or routing request was sent; and if said particular type of file object is found, accessing the appropriate create handler for said particular type of file object, and if not, returning an error message and disregarding the request.
Claim 17
Dependent Claim 342 words
In a computer operating system that includes a) a driver object for managing a software driver as a system resource, b) one or more device objects each of which define a software driver's functionality and availability to other operating system resources and each of which includes a private data area containing a validation table with valid file object types and associated create handlers for each file object type, and c) one or more file objects for managing invocation of an operating system resource as specified by a particular device object and each of which includes a private data area containing an IRP request handler table and a validation table with valid file object types and associated create handlers for each file object type, and wherein the file objects are hierarchically related to parent objects that may consist of either device objects or other file objects, a computer program product for implementing a method of standardizing i) validation of creation of, or ii) routing of messages to, file objects in order to eliminate the need for third party driver developers to write validation or routing code for such drivers, the computer program product comprising: a computer readable medium for carrying computer program code means for implementing said method, and wherein said method is comprised of the steps for; receiving at a driver object a request to either create a particular type of file object or to route a message to a particular type of file object; sending the received request to a multiplexing dispatch function which is resident as part of the operating system, as opposed to being provided by a third party driver developer; the multiplexing dispatch function then accessing a private data area of a parent object for the purpose of searching for said particular type or file object for which the creation or routing request was sent; and if said particular type of file object is found, accessing the appropriate create handler for said particular type of file object, and if not, returning an error message and disregarding the request.
Claim 18
Dependent Claim 39 words
A computer program product for implementing the method as recited in claim 15 wherein the request received at the driver object includes the information needed to determine if the parent object is a file object or a device object.
Claim 19
Dependent Claim 27 words
A computer program product for implementing the method as recited in claim 15, wherein the request received at the driver object is implemented as a data structure.
Claim 20
Dependent Claim 31 words
A computer program product for implementing the method as recited in claim 15 wherein the multiplexing dispatch function determines whether the parent object is a file object or a device object.
Claim 21
Dependent Claim 26 words
A computer program product for implementing the method as recited in claim 15 wherein the implementing dispatch function is a single function which processes IRP requests.
Claim 22
Dependent Claim 34 words
A computer program product for implementing the method as recited in claim 15 wherein the multiplexing dispatch function is one of several multiplexing functions germane to the particular request received by the driver object.
Claim 23
Dependent Claim 41 words
A computer program product for implementing the method as recited in claim 17 wherein the data structure includes a handle to the parent object (our spec only indicates handle passes for parent file object but it would have to for either).
Claim 24
Dependent Claim 43 words
A computer program product for implementing the method as recited in claim 18 wherein it the parent object is a file object, the multiplexing dispatch function uses the private data area of the parent file object to reference an IRP request handler table.
Claim 25
Dependent Claim 41 words
A computer program product for implementing the method as recited in claim 18 wherein if the parent object is a device object, the multiplexing dispatch function uses the private data area of the parent device object to reference a validation table.
Claim 26
Dependent Claim 35 words
A computer program product for implementing the method as recited in claim 22 wherein if the request is a creation request, the multiplexing function access a validation table referenced in the IRP request handler table.
Claim 27
Dependent Claim 41 words
A computer program product for implementing the method as recited in claim 23 wherein the multiplexing function compares a string in the request to create a particular type of file object with file object type strings contained in the validation table.
Claim 28
Dependent Claim 44 words
A computer program product for implementing the method as recited in claim 23 wherein the multiplexing function compares an index value in the request to create a particular type of file object with a range of permissible index values contained in the validation table.
Claim 29
Dependent Claim 41 words
A computer program product for implementing the method as recited in claim 24 wherein the multiplexing function compares a string in the request to create a particular type of file object with file object type strings contained in the validation table.
Claim 30
Dependent Claim 44 words
A computer program product for implementing the method as recited in claim 24 wherein the multiplexing function compares an index value in the request to create a particular type of file object with a range of permissible index values contained in the validation table.

References Cited (Backward Citations)

US5463774A Cited
US5615363A Cited
US5694563A Cited
US5886699A Cited
US5903894A Cited
US5815689A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-01-17 2003-07-19 2004-01-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-01-17 2007-07-19 2008-01-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-01-17 2011-07-19 2012-01-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag