PnP resolves this location when it installs the device. HKR,FirmwareFilename,"%13%\firmware_payload.bin" In your firmware update driver INF, specify DIRID 13 to cause PnP to leave the files in the driver package in the DriverStore: To update firmware for devices that use a Microsoft-supplied driver, you need to create a second device node, as shown above. Add firmware update logic to a Microsoft-supplied driver When installed, this INF creates the following device hierarchy:įor future firmware updates, update the INF and binary file containing the firmware payload. In the above INF sample, ComponentIDs = ComponentDeviceId indicates that the child device will have a hardware ID of SWC\ComponentDeviceId. %DeviceName%=Device_Install, PCI\DEVICE_IDĪddComponent=ComponentName,AddComponentSection The following snippet from an INF file shows how you can do this: In this case, use an extension INF that specifies the AddComponent directive to create a device node that can be targeted by Windows Update and install the firmware update driver on it. Many device types, however, don't allow a single physical device to enumerate more than one device node. You can use this functionality to create a device node targetable by WU, and install a firmware update driver on it. Certain device types have the ability to expose a second device node on one physical device, such as USB. There are a couple ways to create a second device node. In this case, the function and firmware device nodes must have different hardware IDs in order to be targeted independently. The following diagram shows how one device can have two separate device nodes: The existing function driver can implement the firmware update mechanism, as shown in the following diagram:Īlternatively, if you want to update the function driver and the firmware update driver separately, create a second device node, on which you'll install the firmware update driver. Add firmware update logic to a vendor-supplied driver Submit your firmware update package as a separate driver submission. Typically, the firmware update driver package contains the following items: When conditions are met, perform the firmware update on the device. If an update is queued, wait for a set of conditions to be met. Otherwise, do nothing until the driver is started again. If a firmware update is necessary, set an event timer to schedule the update. Identify the device to which it's attached.ĭetermine whether the driver has a firmware version that is more recent than the version on the firmware currently flashed on device hardware. Typically, the firmware update driver is a lightweight device driver that implements the following procedures:Īt device start or in the driver's EVT_WDF_DRIVER_DEVICE_ADD callback function: The driver binary can use KMDF, UMDF 2 or the Windows Driver Model.īecause WU can't execute software, the firmware update driver must hand the firmware to Plug and Play (PnP) for installation. In both cases, the firmware update driver package must be universal.įor more info about universal drivers, see Getting started with Windows drivers. If your device uses a Microsoft-supplied driver, you must provide a separate firmware update driver package. If your device uses a vendor-supplied driver, you have the option of adding the firmware update logic and payload to your existing function driver, or providing a separate firmware update driver package. To do this, you'll provide an update mechanism, implemented as a device driver that includes the firmware payload. For information about updating system firmware, see Windows UEFI firmware update platform. This article describes how to update a removable or in-chassis device's firmware using the Windows Update (WU) service.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |