In order to get the right drivers you need to identify the devices through their hardware IDs. Each device has more than one ID: the first one is the most specific, and the last one is the most generic.
The most relevant bits are
DEV_YYYY, which are the vendor ID and the device ID, respectively. The IDs are hexadecimal values associated with a manufacturer/device, which you can lookup using PCI Database. USB devices use
PID_YYYY, which are similar (PID stands for Product ID). A list can be found at The USB ID Repository.
You want to get the most specific driver whenever possible, because that's going to be the best match for the device. On the other hand, a generic driver could miss certain features, or it might not even work.
Realtek card reader
Let's start with the first device. The hardware ID is the following:
The vendor ID is
10EC, which is associated to Realtek. The device appears to be a card reader.
For some reason the HP download page doesn't provide a card reader driver when selecting Windows 7; you'll have to pick Windows 8. It doesn't really matter in this case as the driver package is meant to be compatible with XP and later. The
.inf installation file does include the correct ID:
HP 3D DriveGuard
Here's the hardware ID for the second device:
A quick search returned a forum thread which suggested it's related to HP 3D DriveGuard, a proprietary active hard-drive protection:
HP 3D DriveGuard receives notifications from the integrated accelerometer and protects the hard drive (HDD) by automatically "parking the heads" to reduce the risk of damage if the notebook/laptop is accidentally dropped or is abruptly impacted by another object.
Source: HP 3D DriveGuard | HP® Support
This can be confirmed by inspecting the actual driver package. In fact, the installation file contains the following line:
%DeviceDesc% = HPAccelerometerDriverInstall.ntamd64, ACPI\HPQ6007
The device is indeed an accelerometer. Here's the human-readable description:
DeviceDesc = "HP Mobile Data Protection Sensor"
You can download it from the official support page. The setup package won't start properly (as of version
220.127.116.11), and you'll get the following window:
After further analysis through the task manager, it turned out the command line used is the following:
"C:\SWSetup\SP66078\setup.exe" "setup.exe" /s /v"/qn REBOOT=REALLYSUPPRESS"
The parameters are messed up. They should have been set like this:
"C:\SWSetup\SP66078\setup.exe" "/s /v/qn REBOOT=REALLYSUPPRESS"
To workaround this issue, just run the
setup.exe application manually. When you're done the
C:\SWSetup\SP66078 folder can be deleted. As an alternative you can extract the
spXXXXX.exe software package yourself using 7-Zip.
Some devices require a vendor-supplied driver that is designed specifically for that device or one that is designed to support a family of devices. However, other devices can be driven by a system-supplied driver that supports all the devices of a given device setup class. Windows selects the driver that most closely matches the device. If Windows does not find such a driver, it selects from increasingly more general drivers.
Source: Overview of the Driver Selection Process
Windows identifies devices and the setup classes they belong to by using a special set of identifiers. These identifiers are used to match hardware devices with the device drivers that allow them to communicate with Windows.
One or more device IDs are assigned to a device by its manufacturer. One of them, the hardware ID, is very specific - down to the make, model, and even the firmware version of the device. Other device IDs are also assigned, and are more generic, with the IDs possibly being assigned to other devices from the manufacturer that are compatible at some level.
Source: Discovering Hardware IDs and Device Setup Classes for your Devices
An INF file is a text file that contains all the information that device installation components used to install a driver. Windows installs drivers using INF files. This information includes the following:
Source: Overview of INF Files