DETAILED ACTION
Response to Amendment
This Non-Final Office Action is in response to the applicant’s remarks and arguments filed on June 25, 2025.
Claims 1-11, 13-17 and 19-25 were amended, new claim 26 added.
Claims 1-26 remain pending in the application. Claims 1-26 are being considered on the merits.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant argues that:
“Accordingly, neither Rawat nor Elkabany, nor their combination, discloses or suggests "circuitry to, in response to the API call, provide one or more pointers to identify one or more storage locations of a function to be performed by the caller.."
Examiner respectfully disagree and submit that:
Applicant’s arguments with respect to the newly added limitations have been considered but are moot because the arguments do not apply to the reference Rioux et al. (USA 2022/0075876) and Callender (US 2006/0200817 being used in the current rejection
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-26 are rejected under 35 U.S.C. 103 as being unpatentable over Rioux et al. (USA 2022/0075876, Rioux hereinafter) in view of Callender (US 2006/02000817, Callender hereinafter).
As to claim 1, Rioux teaches one or more processors comprising: circuitry (e.g., see FIG. 6, “processor”, para 60, “The computer system includes a processor 601 (possibly including multiple processors, multiple cores”, “the processor 601, in a co-processor on a peripheral device or card, etc. Further, realizations may include fewer or additional components not illustrated in FIG. 6 (e.g., video cards, audio cards”. Thus, a circuitry ) to:
receive, from a caller, an application programming interface (API) call including, as input parameters, an identifier of a function and one or more version indicators of the function (e.g., see FIG. 1, para 13, “ The API 103 can be invoked during execution of the application 107 “, “the function calls specified in the API”, “call a function of the API 103 which returns a version number”, “ calling a function of the API 103 to determine the version number”, “function name, parameters, “ in para 15 and 22) ; and
in response to the API call, provide one or more pointers (e.g., para 13, “Code units of the underlying implementation of the API 103 may be maintained in a library, a collection of libraries, etc” and “associating the target function call corresponding to the event and the corresponding one of the analysis code units 117 which handles the event (e.g., based on pointers to the target function call and the corresponding analysis code unit”.
Thus, the “a library, a collection of libraries” include the storage locations of the function).
However, Rioux does not teach to identify one or more storage locations of the function to be performed by the caller.
Callender teaches a pointer to identify one or more storage locations of the function to be performed by the caller (e.g., see FIG. 1, para 24, “the library 110 are utilized by one or more driver components 120 (or drivers) in the operation of the driver and interactions of the driver with an operating system. “, “providing updated address or pointer tables that point to functions that are needed by the driver 120. A registration component 140 can be employed to manage the version level changes and automatically trigger updates between components of the system 100 upon detecting discrepancies between older and newer versions of the respective components” and “4A2 pfnWdfRegisterClientDriver = GetProcAddress( Library, "WdfRegisterClientDriver") in para 36. Thus a pointer to identify one or more storage locations of the function to be performed by the caller).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Rioux by adopting the teachings of Callender to “facilitate automatic version level updates of driver components in the context of an operating system framework.” (see Callender, Abstract).
As to claim 2, Rioux teaches further , wherein one or more portions of the one or more libraries are to be used in conjunction with the API call (e.g., e.g., para 13, “Code units of the underlying implementation of the API 103 may be maintained in a library, a collection of libraries, etc”). However, Rioux does not teach the one or more processors of The one or more processors of wherein the circuitry, in response to the API call, is to further identify the one or more storage locations to indicate one or more portions of one or more libraries implementing the function .Callender teaches in response to the API call, is to further identify the one or more storage locations to indicate one or more portions of one or more libraries implementing the function ( e.g., para 31 and 32, “This library provides the run-time support routines to load and bind to a WDF dynamic library”, [0032] The WdfVersion structure 350 identifies the WDF version which the respective driver 330 was built and is expected to be dynamically bound to. This structure contains the major version number, the minor version number and a build (QFE) number, for example. In general, the major and minor version numbers are used to bind to a WDF version library. The build number is the distribution (build) of the WDF libraries. The WdfFunctions table is an array of pointers to WDF API functions).
Thus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Rioux by adopting the teachings of Callender to “facilitate automatic version level updates of driver components in the context of an operating system framework.” (see Callender, Abstract).
As to claim 3, Rioux teaches one or more processors of The one or more processors of wherein the API circuitry, in response to the API call, is to further receive one or more data values to identify the one or more version indicators, wherein at least one data value identifies an earlier version than a current version (e.g., para 15, “version 1.6 of Java based on calling a function of the API 103 to determine the version number” AND “the version library 600 should be given a unique name which reflects the version it contains. An example might be "WDF02051234.sys. This would be parsed as "a WDF version library with major version number 02, minor version number 05, and build number 1234" for example.” IN PARA 46).
As to claim 4, Rioux teaches wherein the API circuitry, in response to the API call, is to further receive one or more first data values to indicate a base name and one or more second data values to be used as the one or more version indicators (e.g., para 43, “determining function names, return values, parameters, etc. indicated in function calls of the API of the current language and version number based on processing the corresponding code units” AND “the version library 600 should be given a unique name which reflects the version it contains. An example might be "WDF02051234.sys. This would be parsed as "a WDF version library with major version number 02, minor version number 05, and build number 1234" for example.” In para 46) .
As to claim 5, Rioux teaches one or more processors of wherein the one or more libraries are runtime libraries to be performed by the circuitry (e.g., para 13, “The runtime engine 105 provides a runtime engine API (“API”) 103 for interfacing with the runtime engine 105”, “Code units of the underlying implementation of the API 103 may be maintained in a library, a collection of libraries, etc. As used herein, the API 103 refers to the function calls specified in the API for the runtime engine 105 and the underlying implementations thereof.”) .
As to claim 6, Rioux does not explicitly teach one or more processors of wherein the one or more libraries are provided by drivers and are to be performed by the circuitry. However, Callender teaches wherein the one or more libraries are provided by drivers and are to be performed by the circuitry ( see FIG. 3).
hus, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to modify the method of Rioux by adopting the teachings of Callender to “facilitate automatic version level updates of driver components in the context of an operating system framework.” (see Callender, Abstract).
As to claim 7, see rejection of claim 1 above. Rawat teaches further a system comprising: one or more processors ( see FIG. 6).
As to claims 8-9, see rejection of claims 2 and 4 above.
As to claim 10, see rejection of claims 1 and 4 above.
As to claims 11-12, see rejection of claims 5-6 above.
As to claim 13, see rejection is claim 1 above. Rawat teaches further a non-transitory machine-readable medium having stored thereon one or more application programming interfaces (APIs) (para [0055] Any combination of one or more machine readable medium(s) may be utilized. The machine readable medium may be a machine readable signal medium or a machine readable storage medium. A machine readable storage medium may be, for example, but not limited to, a system, apparatus, or device, that employs any one of or combination of electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology to store program code. )
As to claim 14, see rejection of claims 1 2 above.
As to claim 15, see rejection of claim 3 above.
As to claim 16, see rejection of claim 2 above.
As to claims 17-18, see rejection of claims 5-6 above .
As to claim 19-22, see rejection of claims 1-6 above.
As to claim 26, Rioux teaches in response to the API call, is further to locate the function in a data structure using the identifier of function and the one or more version indicators of the function, wherein the data structure comprises a plurality of functions, each function having a plurality of implementations indicated by different version numbers (e.g., see rejection of claim 1 above , para 43, “versions 1.6 and 1.7 “).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABDOU K SEYE whose telephone number is (571)270-1062. The examiner can normally be reached M-F 9-5:30.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Pierre Vital can be reached at 5712724215. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/TUAN C DAO/Primary Examiner, Art Unit 2198
/ABDOU K SEYE/Examiner, Art Unit 2198