InstallDriverFirmwareUpdate
(Windows only) Install a driver/firmware update package. The engine may extract the package to a temporary directory as needed and write installer's logs to the installer directory.
Syntax
Method ID
#define WA_VMOD_INSTALL_DRIVER_FIRMWARE_UPDATE 50903
JSON Input Structure
{
"input": {
"method": 50903,
"patch_id": string,
"installer_path": string,
"timeout": number,
"preflight_check": boolean
}
}
Input Properties
| Parameter | Type | Description |
|---|---|---|
patch_id | string | Patch identifier from DetectDriverFirmwarePatches output. |
installer_path | string | Path to the downloaded installer package or executable. |
timeout | number | (optional) Maximum time (in seconds) to wait for the installer to complete. Default: 1800 (30 minutes). |
preflight_check | boolean | (optional) When true, the SDK verifies preconditions like power status (AC connected and battery level) and BitLocker status before running the BIOS installer. If a check fails, installation is blocked and an error is returned. The default value is true. |
JSON Output Structure
{
"result": {
"method": 50903,
"code": number,
"timing": number,
"timestamp": string,
"install_return_code": string,
"require_restart": number,
"log_paths": [
string,
...
]
}
}
Output Properties
| Property | Type | Description |
|---|---|---|
result.method | number | The method ID that generated this result. |
result.code | number | The result code. See Result Codes. |
result.timing | number | The measured time for the method call in milliseconds. |
result.timestamp | string | The timestamp in seconds of when the call was made. |
result.install_return_code | string | Return code from the vendor installer process, serialized as a string. |
result.require_restart | number | Restart indicator. • 0 = No reboot • 1 = Requires reboot • 2 = Forces reboot • 3 = Forces shutdown • 4 = Delayed forced reboot |
result.log_paths | array<string> | Paths to generated installation log files. May be empty if no logs were produced. |
Result Codes
| Code | Name | Description |
|---|---|---|
| 0 | WAAPI_OK | Installed successfully. No restart required. |
| 1003 | WA_VMOD_INSTALLATION_NEED_RESTART | Installed. OS restart required to complete the update. |
| -5 | WAAPI_ERROR_NOT_INITIALIZED | OESIS Framework has not been initialized yet (for example, because wa_api_setup was not called successfully or the license required by this module is missing). |
| -15 | WAAPI_ERROR_DATABASE_ENTRY_MISSING | patch_id is not found in the database. |
| -16 | WAAPI_ERROR_DATABASE_NOT_INITIALIZED | Database not loaded — call LoadDriverFirmwareDatabase before this method. |
| -20 | WAAPI_ERROR_INVALID_INPUT_ARGS | Required field is missing or has unexpected type and/or value, or optional field exists but has unexpected type and/or value. |
| -22 | WAAPI_ERROR_ACCESS_DENIED | Administrator privileges required, or insufficient permissions to read the database file. |
| -28 | WAAPI_ERROR_NOT_FOUND | Installer file does not exist. |
| -48 | WAAPI_ERROR_HASH_MISMATCH | Package integrity check failed — SHA-256 does not match expected value. |
| -49 | WAAPI_ERROR_THREAD_TIMEOUT | Installation did not complete within the configured timeout. |
| -1034 | WA_VMOD_ERROR_INSTALLATION_FAILED | Installer executed but reported failure. Check install_return_code and log_paths. |
| -1036 | WA_VMOD_ERROR_EXTRACT_FAILED | Failed to extract the installer package before execution. |
| -1049 | WAAPI_ERROR_NO_FREE_SPACE | Free disk space on the target drive does not meet the patch's requirement. |
| -1066 | WA_VMOD_ERROR_VENDOR_NOT_SUPPORTED | The device vendor is not supported. |
| -1068 | WA_VMOD_ERROR_DEPENDENCIES_NOT_MET | Installation dependencies are not satisfied. |
| -1 | WAAPI_ERROR_GENERAL | Unexpected failure with no more specific error type. |
note
Other codes may be returned. See the full Result Codes reference for the complete list.
Remarks
Error Handling
The results of this function are determined by the error code returned by the call. If successful, WAAPI_OK or a special success code will be returned. Always check both the function return value and the result.code field in the output JSON.
Examples
Examples will be added here demonstrating the usage of this method.
See Also
Last updated: 2026-10-01