Prosecution Insights
Last updated: May 29, 2026
Application No. 17/719,688

APPLICATION PROGRAMMING INTERFACE TO IDENTIFY FUNCTION VERSIONS

Final Rejection §103
Filed
Apr 13, 2022
Priority
Apr 14, 2021 — provisional 63/175,013
Examiner
SEYE, ABDOU K
Art Unit
2198
Tech Center
2100 — Computer Architecture & Software
Assignee
Nvidia Corporation
OA Round
6 (Final)
82%
Grant Probability
Favorable
7-8
OA Rounds
0m
Est. Remaining
99%
With Interview

Examiner Intelligence

Grants 82% — above average
82%
Career Allowance Rate
480 granted / 583 resolved
+27.3% vs TC avg
Strong +28% interview lift
Without
With
+27.5%
Interview Lift
resolved cases with interview
Typical timeline
3y 3m
Avg Prosecution
17 currently pending
Career history
622
Total Applications
across all art units

Statute-Specific Performance

§101
5.6%
-34.4% vs TC avg
§103
89.7%
+49.7% vs TC avg
§102
1.4%
-38.6% vs TC avg
§112
2.0%
-38.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 583 resolved cases

Office Action

§103
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
Read full office action

Prosecution Timeline

Show 15 earlier events
Jun 11, 2025
Applicant Interview (Telephonic)
Jun 25, 2025
Request for Continued Examination
Jun 30, 2025
Response after Non-Final Action
Dec 18, 2025
Non-Final Rejection mailed — §103
Feb 19, 2026
Interview Requested
Mar 18, 2026
Response Filed
May 04, 2026
Final Rejection mailed — §103
May 15, 2026
Interview Requested

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12639140
REAL-TIME DATA PROCESSING PIPELINE AND PACING CONTROL SYSTEMS AND METHODS
2y 4m to grant Granted May 26, 2026
Patent 12632272
ADAPTIVE VIRTUAL DESKTOP SESSION PLACEMENT ON HOST SERVERS VIA USER LOGOFF PREDICTION
4y 9m to grant Granted May 19, 2026
Patent 12598527
Real-Time Any-G SON
2y 0m to grant Granted Apr 07, 2026
Patent 12587456
MACHINE LEARNING BASED EVENT MONITORING
4y 0m to grant Granted Mar 24, 2026
Patent 12585512
CUSTOMIZED SOCKET APPLICATION PROGRAMMING INTERFACE FUNCTIONS
11m to grant Granted Mar 24, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

7-8
Expected OA Rounds
82%
Grant Probability
99%
With Interview (+27.5%)
3y 3m (~0m remaining)
Median Time to Grant
High
PTA Risk
Based on 583 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month