Patent US5369770A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5369770A Expired / Lapsed US ⏱️ 0.0 years remaining

Standardized protected-mode interrupt manager

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1992-11-02
•
Granted: 1994-11-29
•
Expires: 2012-11-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A hook manager for system interrupts allows hooks to be added and removed from an interrupt chain in any order. The hook manager may be realized as a dynamic-link library module and may include application program interface (API) functions that are called by application programs to add hooks and remove hooks on their behalf. The hook manager creates a standardized stack that is accessible by application programs and may be used by multiple types of application programs.

Inventors

  • 👤 Jon G. Thomason
  • 👤 Earle R. Horton

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 21:00
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/48; G06F9/4806; G06F9/4812; G06F9/44; G06F9/445; G06F9/44521; G06F9/448; G06F9/4482; G06F9/4484; G06F9/4486

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 96 words
In a data processing system having a memory for holding a dynamic-link library, a user stack that is used by application programs and a processor for executing the application programs, a method comprising the steps of: a) providing a hook manager in the dynamic-link library for managing hooking and unhooking of system interrupts for the application programs; b) hooking a first interrupt to the hook manager; c) manipulating the user stack so that the stack may be used by any of the application programs; and d) passing the first interrupt to one of the application programs.
Claim 2
Dependent Claim 96 words
In a data processing system having a memory for holding a dynamic-link library, a user stack that is used by application programs and a processor for executing the application programs, a method comprising the steps of: a) providing a hook manager in the dynamic-link library for managing hooking and unhooking of system interrupts for the application programs; b) hooking a first interrupt to the hook manager; c) manipulating the user stack so that the stack may be used by any of the application programs; and d) passing the first interrupt to one of the application programs.
Claim 3
Dependent Claim 25 words
A method as recited in claim 1 wherein the step of manipulating the stack further comprises the step of copying additional information into the stack.
Claim 4
Dependent Claim 52 words
A method as recited in claim 1 wherein the hook manager includes an application program interface (API) that is called by at least one of the application programs to receive system interrupts and an API that is called by at least one of the application programs to no longer receive system interrupts.
Claim 5
Dependent Claim 106 words
In a data processing system, a method comprising the steps of: a) interrupting an executing application program with a system interrupt; b) determining a type of the system interrupt; c) determining a first interrupt handler on a system interrupt chain to receive the system interrupt; d) determining a second interrupt handler on the system interrupt chain to receive the system interrupt if the first interrupt handler returns the system interrupt; e) storing the type of the system interrupt and an address for accessing the second interrupt handler on a stack of the first interrupt handler; and f) passing the system interrupt to the first interrupt handler.
Claim 6
Dependent Claim 106 words
In a data processing system, a method comprising the steps of: a) interrupting an executing application program with a system interrupt; b) determining a type of the system interrupt; c) determining a first interrupt handler on a system interrupt chain to receive the system interrupt; d) determining a second interrupt handler on the system interrupt chain to receive the system interrupt if the first interrupt handler returns the system interrupt; e) storing the type of the system interrupt and an address for accessing the second interrupt handler on a stack of the first interrupt handler; and f) passing the system interrupt to the first interrupt handler.
Claim 7
Dependent Claim 34 words
A method as recited in claim 4, further comprising the step of providing a hook manager that includes a function that may be called to add an interrupt handler to the system interrupt chain.
Claim 8
Dependent Claim 16 words
A method as recited in claim 5 wherein the hook manager is a dynamic-link library module.
Claim 9
Dependent Claim 16 words
A method as recited in claim 6 wherein the function is an application program interface (API).
Claim 10
Dependent Claim 22 words
A method as recited in claim 4, further comprising the step of removing the first interrupt handler from the system interrupt chain.
Claim 11
Dependent Claim 31 words
A method as recited in claim 4, further comprising the steps of: returning the system interrupt from the first interrupt handler; and passing the system interrupt to the second interrupt handler.
Claim 12
Dependent Claim 120 words
In a data processing system running an operating system and first and second application programs, a method comprising the steps of: a) providing a hook manager in a dynamic-link library for managing hooking and unhooking of interrupts by the application programs, said hook manager maintaining a chain of hooks; b) adding a hook for the first application program to the hook chain using the hook manager; c) subsequently adding a hook for the second application program to the hook chain using the hook manager; d) unhooking the hook for the first application program from the hook chain using the hook manager; and e) subsequently unhooking the hook for the second application program from the hook chain using the hook manager.
Claim 13
Dependent Claim 120 words
In a data processing system running an operating system and first and second application programs, a method comprising the steps of: a) providing a hook manager in a dynamic-link library for managing hooking and unhooking of interrupts by the application programs, said hook manager maintaining a chain of hooks; b) adding a hook for the first application program to the hook chain using the hook manager; c) subsequently adding a hook for the second application program to the hook chain using the hook manager; d) unhooking the hook for the first application program from the hook chain using the hook manager; and e) subsequently unhooking the hook for the second application program from the hook chain using the hook manager.
Claim 14
Dependent Claim 87 words
In a data processing system running an operating system and application programs, a method comprising the steps of: a) providing a hook manager in a dynamic-link library for hooking and unhooking of system interrupts by the application programs; b) building a chain of hooks using the hook manager in response to requests by the application programs to receive system interrupts, said chain being built in sequential order based on when the requests are received; and c) unhooking the hooks from the chain in a non-last-in-first-out (non-LIFO) fashion.
Claim 15
Dependent Claim 87 words
In a data processing system running an operating system and application programs, a method comprising the steps of: a) providing a hook manager in a dynamic-link library for hooking and unhooking of system interrupts by the application programs; b) building a chain of hooks using the hook manager in response to requests by the application programs to receive system interrupts, said chain being built in sequential order based on when the requests are received; and c) unhooking the hooks from the chain in a non-last-in-first-out (non-LIFO) fashion.
Claim 16
Dependent Claim 99 words
In a data processing system having a processor and registers, a method comprising the steps of: a) interrupting an application program running on the processor with a system interrupt; b) hooking the interrupt to a hook manager through system services, said system services having a stack for storing information; c) copying state information for the application program to the system services stack using the hook manager; d) copying the state information for the application program from the system services stack to a stack for a first interrupt handler; and e) passing the system interrupt to the first interrupt handler.
Claim 17
Dependent Claim 99 words
In a data processing system having a processor and registers, a method comprising the steps of: a) interrupting an application program running on the processor with a system interrupt; b) hooking the interrupt to a hook manager through system services, said system services having a stack for storing information; c) copying state information for the application program to the system services stack using the hook manager; d) copying the state information for the application program from the system services stack to a stack for a first interrupt handler; and e) passing the system interrupt to the first interrupt handler.
Claim 18
Dependent Claim 38 words
A method as recited in claim 12 wherein the step of copying state information for the application program to the system services stack, further comprises the step of copying values of the registers to the system services stack.
Claim 19
Dependent Claim 42 words
A method as recited in claim 12 wherein the step of copying state information for the application program to the system services stack, further comprises the step of copying values of local variables for the application program to the system services stack.
Claim 20
Dependent Claim 33 words
A method as recited in claim 12, further comprising the step of providing a system interrupt chain of interrupt handlers that wish to receive system interrupts, said chain including the first interrupt handlers.

References Cited (Backward Citations)

US4779187A Cited
US5027273A Cited
US5121501A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-11-28 1998-05-30 1998-11-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-11-28 2002-05-30 2002-11-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-11-28 2006-05-30 2006-11-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag