Claims Analysis
Total Claims: 29
Claim 1
Independent Claim
167 words
A method of subclassing a pre-identified dynamically-exportable service of a pre-identified software module wherein the pre-identified software module includes an export data section that is usable for dynamic-linking of other software modules to the pre-identified dynamically-exportable service of the pre-identified software module, said method comprising the steps of: (a) waiting for installation of at least the export data section of the pre-identified software module; and (b) before said other modules are linked to the pre-identified software module, modifying the installed export data section of the pre-identified software module so as to enable linking of the other modules by way of the modified export data section to a subclassing routine, said modification of the installed export data section including the substeps of: (b.1) locating in the installed export data section, the position of an original value normally used for referencing said pre-identified dynamically-exportable service during dynamic linking; and (b.2) overwriting the located position of said original value with a different value that redirects control to the subclassing routine.
Claim 2
Independent Claim
167 words
A method of subclassing a pre-identified dynamically-exportable service of a pre-identified software module wherein the pre-identified software module includes an export data section that is usable for dynamic-linking of other software modules to the pre-identified dynamically-exportable service of the pre-identified software module, said method comprising the steps of: (a) waiting for installation of at least the export data section of the pre-identified software module; and (b) before said other modules are linked to the pre-identified software module, modifying the installed export data section of the pre-identified software module so as to enable linking of the other modules by way of the modified export data section to a subclassing routine, said modification of the installed export data section including the substeps of: (b.1) locating in the installed export data section, the position of an original value normally used for referencing said pre-identified dynamically-exportable service during dynamic linking; and (b.2) overwriting the located position of said original value with a different value that redirects control to the subclassing routine.
Claim 3
Dependent Claim
82 words
A subclassing method according to claim 1 wherein said method further comprises: (c) before said other modules are linked to the pre-identified software module, further modifying the pre-identified software module so as to force linking of the other modules to the subclassing routine by way of the modified export data section, and wherein said step of further modifying so as to force linking of the other modules to the subclassing routine includes: (c.1) altering a time stamp of the pre-identified software module.
Claim 4
Dependent Claim
27 words
The subclassing method of claim 2 wherein said step (c) of further modifying is carried out before said step (b) of modifying the installed export data section.
Claim 5
Dependent Claim
47 words
The subclassing method of claim 2 wherein said step (c.1) of altering the time stamp includes: (c.1a) incrementing or decrementing the time stamp of the pre-identified software module by a small value that is unlikely as a time difference between different versions of the pre-identified software module.
Claim 6
Dependent Claim
68 words
The subclassing method of claim 3 wherein said operating system is loaded by an OS loader program and said subclassing method further comprises, between said step (c) of further modifying and said step (b) of modifying the installed export data section, an additional step of: (d) waiting for a signal from the OS loader program indicating that at least API parts of the operating system have been loaded.
Claim 7
Dependent Claim
77 words
The subclassing method of claim 1 wherein the pre-identified dynamically-exportable service can be identified by a service name or by a corresponding ordinal number and said subclassing method further comprises the step of: (d) determining which form of identification is being used to pre-identify the dynamically-exportable service; and further wherein: (b.1a) said step (b.1) of locating the position of the original value is responsive to said step (d) of determining which form of identification is being used.
Claim 8
Dependent Claim
63 words
The subclassing method of claim 1 wherein said pre-identified software module is a dynamically-linked kernel of an operating system that further includes a virtual machine manager (VMM) and said step of (a) waiting for installation includes: (a.1) testing system status messages broadcast by the VMM for a system status message that indicates the that the dynamically-linked kernel has been loaded into system memory.
Claim 9
Independent Claim
143 words
A method for subclassing a pre-identified exportable service of a pre-identified portable-executable (PE) module that uploads into system memory, said method comprising the steps of: (a) after the pre-identified PE module has been loaded into system memory but before other modules are loaded into system memory, said other modules being ones that may use said pre-identified service, locating the PE header of the pre-identified PE module; (b) obtaining from the located PE header an export pointer that points to an export array of the pre-identified PE module; (c) locating in the export array of the pre-identified PE module, the position of an original value normally used for referencing said pre-identified service; (d) overwriting the located position of said original value with a new value equal to a desired subclassing address minus an image base value of the pre-identified module that is being subclassed.
Claim 10
Independent Claim
143 words
A method for subclassing a pre-identified exportable service of a pre-identified portable-executable (PE) module that uploads into system memory, said method comprising the steps of: (a) after the pre-identified PE module has been loaded into system memory but before other modules are loaded into system memory, said other modules being ones that may use said pre-identified service, locating the PE header of the pre-identified PE module; (b) obtaining from the located PE header an export pointer that points to an export array of the pre-identified PE module; (c) locating in the export array of the pre-identified PE module, the position of an original value normally used for referencing said pre-identified service; (d) overwriting the located position of said original value with a new value equal to a desired subclassing address minus an image base value of the pre-identified module that is being subclassed.
Claim 11
Dependent Claim
177 words
A machine-implemented system for subclassing an exportable service of a first loaded module with respect to afterwards-loaded service-importing modules, wherein the first module has a relatively-locatable export record that may be used for resolving external links during a uploading into system memory of one or more of the service-importing modules, said system comprising: (a) detecting means for detecting completion of the loading of the first module into system memory; (b) locating means for locating the relatively-locatable export record of the first module and for locating a vectoring position of said service within the located export record; (c) thunking means for writing a redirecting value into the located vectoring position of the first module after the first module is loaded, the redirecting value redirecting to a predefined subclassing address, those external links that are later resolved during the loading of one or more of the service-importing modules; and (d) forcing means for forcing use of the thunked export record of the first module during subsequent uploading into system memory of the one or more of the service-importing modules.
Claim 12
Dependent Claim
177 words
A machine-implemented system for subclassing an exportable service of a first loaded module with respect to afterwards-loaded service-importing modules, wherein the first module has a relatively-locatable export record that may be used for resolving external links during a uploading into system memory of one or more of the service-importing modules, said system comprising: (a) detecting means for detecting completion of the loading of the first module into system memory; (b) locating means for locating the relatively-locatable export record of the first module and for locating a vectoring position of said service within the located export record; (c) thunking means for writing a redirecting value into the located vectoring position of the first module after the first module is loaded, the redirecting value redirecting to a predefined subclassing address, those external links that are later resolved during the loading of one or more of the service-importing modules; and (d) forcing means for forcing use of the thunked export record of the first module during subsequent uploading into system memory of the one or more of the service-importing modules.
Claim 13
Dependent Claim
142 words
A machine-implemented desktop-restoring method for use with an operating system (OS) kernel that provides for dynamic-linking-to of kernel services from dynamically-linked loadable modules, said desktop-recreating method comprising the steps of: (a) globally redirecting by subclassing of one or more of the dynamically-linked-to services of said OS kernel, file launching requests made to the OS kernel for files to be launched on a given virtual desktop, said redirecting being to a launch-history recording program that executes after the file launching request is serviced, said launch-history recording program being for recording the state of the given virtual desktop after the file launching request has been serviced; and (b) using the recorded information produced by said launch-history recording program to later restore the given virtual desktop in the state the virtual desktop had at the time of the last execution of said launch-history recording program.
Claim 14
Dependent Claim
142 words
A machine-implemented desktop-restoring method for use with an operating system (OS) kernel that provides for dynamic-linking-to of kernel services from dynamically-linked loadable modules, said desktop-recreating method comprising the steps of: (a) globally redirecting by subclassing of one or more of the dynamically-linked-to services of said OS kernel, file launching requests made to the OS kernel for files to be launched on a given virtual desktop, said redirecting being to a launch-history recording program that executes after the file launching request is serviced, said launch-history recording program being for recording the state of the given virtual desktop after the file launching request has been serviced; and (b) using the recorded information produced by said launch-history recording program to later restore the given virtual desktop in the state the virtual desktop had at the time of the last execution of said launch-history recording program.
Claim 15
Dependent Claim
143 words
A data conveying apparatus having subclassing code defined therein for execution by a predefined code executing unit, the subclassing code being for subclassing a dynamically-exportable service of a first software module wherein the first software module includes a header section and an export data section that are usable for dynamic-linking of other software modules to the dynamically-exportable service of the first software module, said subclassing code comprising: (a) waiting means for waiting for installation of at least the header section and the export data section of the first software module; and (b) modifying means, responsive to the waiting means, for modifying the installed export data section and the installed header section of the first software module so as to force linking of the other modules by way of the modified export data section to a subclassing routine instead of to the dynamically-exportable service.
Claim 16
Dependent Claim
143 words
A data conveying apparatus having subclassing code defined therein for execution by a predefined code executing unit, the subclassing code being for subclassing a dynamically-exportable service of a first software module wherein the first software module includes a header section and an export data section that are usable for dynamic-linking of other software modules to the dynamically-exportable service of the first software module, said subclassing code comprising: (a) waiting means for waiting for installation of at least the header section and the export data section of the first software module; and (b) modifying means, responsive to the waiting means, for modifying the installed export data section and the installed header section of the first software module so as to force linking of the other modules by way of the modified export data section to a subclassing routine instead of to the dynamically-exportable service.
Claim 17
Dependent Claim
63 words
A data conveying apparatus according to claim 11 wherein said modifying means includes: (b.1) locating means for locating in the installed export data section, the position of an original value normally used for referencing said dynamically-exportable service during dynamic linking; (b.2) overwriting means for overwriting the located position of said original value with a different value that redirects control to the subclassing routine.
Claim 18
Independent Claim
155 words
A method of subclassing one or more dynamically-exportable services of a pre-identified software module globally relative to later-dynamically-loaded modules, wherein the pre-identified software module includes an export data section that is usable for dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said method comprising the steps of: (a) modifying the export data section of the pre-identified software module so as to enable dynamic linking of the other modules by way of the modified export data section to a subclassing routine instead of to a corresponding one of the one or more to-be-subclassed, dynamically-exportable services, said modification of the installed export data section including the substeps of: (a.1) locating in the installed export data section, a position used for referencing a corresponding one of the one or more to-be-subclassed, dynamically-exportable services during dynamic linking; and (a.2) writing into the located position a new value that redirects control to the subclassing routine.
Claim 19
Independent Claim
155 words
A method of subclassing one or more dynamically-exportable services of a pre-identified software module globally relative to later-dynamically-loaded modules, wherein the pre-identified software module includes an export data section that is usable for dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said method comprising the steps of: (a) modifying the export data section of the pre-identified software module so as to enable dynamic linking of the other modules by way of the modified export data section to a subclassing routine instead of to a corresponding one of the one or more to-be-subclassed, dynamically-exportable services, said modification of the installed export data section including the substeps of: (a.1) locating in the installed export data section, a position used for referencing a corresponding one of the one or more to-be-subclassed, dynamically-exportable services during dynamic linking; and (a.2) writing into the located position a new value that redirects control to the subclassing routine.
Claim 20
Dependent Claim
39 words
The subclassing method of claim 13 further comprising the step of: (c) further modifying the pre-identified software module so as to force linking of said later-dynamically-loaded modules to the subclassing routine by way of the modified export data section.
Claim 21
Dependent Claim
26 words
The subclassing method of claim 13 wherein at least one of the later-dynamically-loaded modules is one whose specific identity is not known prior to run time.
Claim 22
Independent Claim
87 words
A method of subclassing one or more pre-identified dynamically-exportable services of a pre-identified software module wherein the pre-identified software module includes an export data section that is usable by a dynamic loader for run time dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said method comprising the step of: (a) writing into the export data section, a new vector value at a vector-storing location used for one of the pre-identified dynamically-exportable services so as to globally redirect control to a subclassing routine.
Claim 23
Independent Claim
87 words
A method of subclassing one or more pre-identified dynamically-exportable services of a pre-identified software module wherein the pre-identified software module includes an export data section that is usable by a dynamic loader for run time dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said method comprising the step of: (a) writing into the export data section, a new vector value at a vector-storing location used for one of the pre-identified dynamically-exportable services so as to globally redirect control to a subclassing routine.
Claim 24
Dependent Claim
37 words
The subclassing method of claim 16 further comprising the step of: (b) modifying the pre-identified software module so as to force the dynamic-loader to consult the modified export data section and to use the new vector value.
Claim 25
Dependent Claim
27 words
The subclassing method of claim 17 wherein said step (b) of modifying the pre-identified software module includes: (b.1) altering a time stamp of the pre-identified software module.
Claim 26
Dependent Claim
19 words
The subclassing method of claim 16 wherein said pre-identified software module is a dynamically-linked kernel of an operating system.
Claim 27
Dependent Claim
59 words
An instructing device according to claim 19 wherein said instructing device further produces instructions for causing the instructable data processing device to carry out operations that cause performance of the following further step: (b) modifying the pre-identified software module so as to force the dynamic-loader to consult the modified export data section and to use the new vector value.
Claim 28
Dependent Claim
117 words
An instructing device for instructing an instructable data processing device to carry out a subclassing operation method that subclasses one or more pre-identified dynamically-exportable services of a pre-identified software module, wherein the pre-identified software module includes an export data section that is usable by a dynamic loader for dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said instructing device producing instructions for causing the instructable data processing device to carry out operations that cause performance of the following step: (a) writing into the export data section, a new vector value at a vector-storing location used for one of the pre-identified dynamically-exportable services so as to globally redirect control to a subclassing routine.
Claim 29
Dependent Claim
117 words
An instructing device for instructing an instructable data processing device to carry out a subclassing operation method that subclasses one or more pre-identified dynamically-exportable services of a pre-identified software module, wherein the pre-identified software module includes an export data section that is usable by a dynamic loader for dynamic-linking of other software modules to dynamically-exportable services of the pre-identified software module, said instructing device producing instructions for causing the instructable data processing device to carry out operations that cause performance of the following step: (a) writing into the export data section, a new vector value at a vector-storing location used for one of the pre-identified dynamically-exportable services so as to globally redirect control to a subclassing routine.