Category Archives: Device drivers

Working SDIO Driver Updates

OK, then. I ‘ve been living and working with Snappy Driver Installer Origin (aka SDIO) for 4 or 5 months now. It’s an Open Source project from a person named Glenn Delahoy. Snappy has a comprehensive database of drivers (I’ve run only into 4 related elements — all part of a single device, really, for which it didn’t have drivers present). In working SDIO driver updates I’ve learned how to use the program in a way that should stay inside organizational policies for acceptable use (AUPs). Let me explain

Best Ways for Working SDIO Driver Updates

Snappy describes itself as a “portable tool.” What that means is you don’t need to keep it around. In fact, because it will get you the most current software and driver database indexes (and such content as you may need), it’s best to grab a fresh ZIP file each time you want to use it.

When you run the exe file (full name for 64-bit version: SDIO_x64_R759.exe), you must accept its license terms. Then you’ll see the screen that shows up in the lead-in graphic above. Note that it provides buttons labeled as follows:

  • Download All Driver Packs
  • Download Network Drivers Only
  • Download Indexes Only

Working Through The Buttons

These require some explanation. The first button (All …) speaks to SDIO’s architecture as a BitTorrent distributed environment. All Driver Packs come in at around 60GB, and by downloading them, you open the door for the host PC to act as a Torrent server for other users who wish to access the Snappy Driver databases. Because this violates every AUP I know of, don’t do this at work.

The second button (Network…) downloads driver packs for networking stuff so that PCs that lack drivers for wired or wireless Ethernet, Bluetooth, and so forth, can be “fixed” to access their local and other networks. You probably won’t need this, but it might come in handy sometime. Keep it in your hat…

The third button (Indexes…) involves an 18 MB download with the info that Snappy needs to  (a) identify all the drivers it recognizes on PCs on which its run and (b) find a match in its driver packs or report a driver it lacks. As I said before, I’ve seen missing drivers come up only one machine of the dozens I’ve used it on since last August (2023). That’s ultimately why it’s my go-to button in SDIO.

How I Use Snappy Could Tell You Something…

I use Snappy on my PC fleet once a month. I visit the maker’s page, where you will always find a link to the current version and database. I remove older versions from my Snappy folder, unZIP its ZIP file, and run the 64-bit version. After accepting the license terms, and selecting the “Indexes” button it tells me if I need any driver updates on the target PC where it’s run. Mostly I get a screen that looks like this:

Working SDIO Driver Updates.drv-up2date

With four months of regular use, I mostly see “Drivers are up to date” on Windows PCs.

It doesn’t bother me to get mostly “up to date” reports from Snappy. Indeed, that’s what I hope it will tell me. If the tool finds any drivers in need of update they will show up as a list in the upper-right quadrant. Simply by clicking Install(x) — where x is the number of out-of-date drivers Snappy finds — you can get it to catch that PC up with where Snappy thinks it should be.

So far, my results from using Snappy have been uniformly positive. I’ve not encountered any driver related issues since I started using it regularly a while back. That’s the basis for my coverage and (still-tentative) recommendation. Try it out — you may learn to like it, as have I.

Facebooklinkedin
Facebooklinkedin

Counting MS 2006 Drivers

Yesterday’s post about generic, MS-supplied device drivers got me thinking. These drivers bear an issue date of 6/21/2006, which coincides with Windows Vista’s RTM date. To be more specific, I wondered how many such items might appear in the Windows DriverStore. With counting MS 2006 drivers in mind, I asked Copilot for a PowerShell script to count them for me. Just for grins I compared that count to the total items as well.

Scripting Out Counting MS 2006 Drivers

You can see the results of my query to Copilot in the lead-in graphic. That query was “Write me a PowerShell script to display number of Windows drivers dated 6/21/2006 and total driver count.” As it turned out, on my Lenovo X380 ThinkPad running Windows 11, those numbers were 517 (2006 count) and 701 (total count). On my i7Skylake homebuilt system running Windows 10, those numbers were 511 and 672, respectively.

I’ll show the PowerShell commands below, but first I want to observe I had NO IDEA that MS supplies roughly 5 of every 7 drivers that Windows uses (over 70%). From looking at the items in the DriverStore more closely thanks to PowerShell, I see that this is because many of them are class, bus and service drivers. You can thus understand them as part of the driver stack between the OS and the function driver (at the bottom of the stack, it actually interacts with devices).

Here’s how MS shows this architecture in its MS Learn article “What is a driver?

Counting MS 2006 Drivers.diagram
The driver at the bottom of the stack that communicates with a device is a function driver; according to the MS Learn item, filter drivers do “auxiliary processing” which may involve monitoring, verifying, translating, or otherwise manipulating in- and out-bound stack communications. By convention app to device communication moves down the stack, while device to app communication goes the other way.

PowerShell Details

Here’s the PowerShell that Copilot handed to me in response to my query, including comments (start with a # character):

#Get all the drivers from the online Windows image
$drivers = Get-WindowsDriver -Online -All
# Filter the drivers by the date of June 21, 2006
$drivers_2006 = $drivers | Where-Object {$_.Date -eq "6/21/2006"}
# Count the number of drivers with that date
$drivers_2006_count = $drivers_2006.Count
# Display the number of drivers and their names
Write-Output "There are $drivers_2006_count drivers dated 6/21/2006 in the online Windows image."
Write-Output "The names of the drivers are:"
$drivers_2006 | ForEach-Object {Write-Output $_.OriginalFileName}
# Display the total number of drivers
$alld = $drivers | Where-Object {$_.Inbox -eq "True"}
Write-Output "There are $alld.count total Windows drivers in the online Windows image."

Some of the lines shown above break across two lines in the browser, but are actually single PowerShell commands. If you run them, you must put them on a single line. I just ran the commands in sequence, one at a time as you can see in the lead-in graphic. I cheated, though: I simply output $alld.count in the last line shown. The PowerShell shown above wraps this in some explanatory text.

Facebooklinkedin
Facebooklinkedin

2006 Microsoft Device Driver Date

Here’s an interesting bit of administrivia. Look at any number of generic drivers inside Microsoft Device Manager. Invariably you’ll see some interesting and apparently ancient items. They’ll show Device Provider: Microsoft and a Driver Date of 6/21/2006. On a Windows 11 test machine just now, for example, I saw that very date under six-plus headings. That included Batteries, Bluetooth, ACPI, Remote Display Adapter, Device Firmware,  and USB . What’s special about this 2006 Microsoft Device Driver date anyway? Good question!

Understanding the 2006 Microsoft Device Driver Date

As it turns out, 6/21/20016 was the day Windows Vista released to manufacturing  (aka RTM date). Since then, when MS supplies a driver for a non-Microsoft device it uses this date. This pushes the driver far back in time. As Device Manager chooses a driver to install it picks the best match for its device ID AND the one with the highest version number and the most recent date.

Why do this? If the OEM (or some other 3rd party with driver signing authority) produces a driver, it will bear a newer date (and possibly a higher version number). Thus, the other driver gets selected and installed. This ensures Windows always installs the best possible driver for any device. And, most of the time, it works!

The MS Driver Date Rationale

As MS updates generic drivers, it increments the driver version number. But it leaves the date at 6/21/2006. That way if a third-party driver comes along, it will almost always trump the MS generic driver version.

Why use the Vista date? Raymond Chen’s MS blog on this topic (2/8/2017) explains things in a bit more detail. A PC Magazine story from the same year supplies another crucial quote from an MS developer:

since only drivers as far back as Vista are compatible with new versions of Windows, every driver should have a date newer than Vista RTM, preserving the driver you installed as the best ranked driver.

So now we know why certain MS-supplied drivers go back to the start of the “modern Windows era.” Good stuff!

 

Facebooklinkedin
Facebooklinkedin

Snappy Driver Installer Worth Considering

I know. I know. Lots of Windows experts and pundits, including at AskWoody, TenForums and ElevenForum, don’t recommend or support driver update tools. That said, I find Snappy Driver Installer worth considering anyway (at least, the Origin fork). Let me recite some recent experience. Then I’ll enumerate the reasons why I’m so grateful for Snappy Driver Installer…

Why Say: Snappy Driver Installer Worth Considering

First let me explain why I’m grateful for this tool and its labor-intensive project. Almost alone among such tools, Snappy Driver installer (SDI) is open source (GNU GPL v3.0 license). Most decent driver update tools cost upwards of US$30 per year, some more than that.

Just this morning, Norton (still running it on my production PC, but I plan to bid it adieu with my next desktop build) told me I had 14 drivers out of date. It costs upwards of US$60 to add its driver scanning functions (and a bunch of other stuff, too) to its ~US$90 annual subscription fee. I’m not interested in paying more, thanks, but I was glad to learn I had some drivers out of date.

Firing up SDI for the first time is interesting because it needs more just under 37GB of driver files to offer a complete collection of stuff from which to work. Even so, the tool is smart enough to focus only on driver packs (7ZIP files of related drivers) that a target PC needs. For this target PC, that involved just a bit over 3 GB across 8 different archive files. SDI was able to handle all the out-of-date drivers on its own, in about 30 minutes (most unattended, while I did something else).

SDI Benefits and Features (IMO Anyway…)

Snappy Driver Installer is free. It’s easy to maintain a portable version on a UFD you can use for all your Windows PCs. It works with all current Windows versions (I’ve used it across the range of Windows 10 and 11 editions and builds).

For me, SDI does the job nicely and keeps my PCs current without annual subscription fees. And because I routinely shoot an image backup before mucking about with drivers, I can say no such update has ever hosed one of the PCs under my purview.

Like I said at the outset: SDI is worth checking out for yourself. You just might find it useful. Your call…

Note: For timing purposes I fired up SDI on another test PC to see how long it takes to grab the whole collection of driver packs. Right now, it’s 115 minutes in at 50% done. That means it could take as long as 4 hours to complete. It’s clocking between 18 and 85 Mbps as it runs, so it’s apparently throttled deliberately and carefully. Final runtime came in well under 3 hours (just over 155 minutes, or 2:35).

Wait! There’s more: Version forks and controversies

I got a tweet today from David Ballesteros. He let me know there are dueling versions of SDI, including the one formerly linked above (I removed it as I’ll explain). Another is called SDI Origin, which gets an interesting description at MajorGeeks.

WARNING!!! Malware is reported in the SDI fork. Thus, many online posters say — no surprise there — use SDI Origin instead. I’ve not run into any of said reported malware, adware or other potential gotchas, but my PCs are pretty armored up.

Just to be on the safe side it seems like SDIO (SDI Origin) is the best version to use. That’s why I killed the link to the other fork (but it’s easy to find online). And as I look at the filenames on my home drive for Snappy I see I wound up with the Origin version in both subfolders anyway (directory root is named SDIO).

As you can see in this properties Window, even my original exe file is named “Snappy Driver Installer Origin.” Reinforces the old saying: it’s better to be lucky than good. Phew: might’ve dodged a bullet!

Facebooklinkedin
Facebooklinkedin

Occam’s Razor Cuts My Intel PROset Problem

OK, then: let’s take a short trip back to medieval England (14th century) and drop in on philosopher William of Ockham. His original Latin epigram is “Entia non sunt multiplicanda praeter necessitatem.” That’s often translated as “Don’t add more factors to an explanation than are strictly necessary.” Many people take it to mean “The simplest explanation is usually the best (or correct) one.” From a troubleshooting standpoint, I take a different lesson.  Eliminate the obvious causes before looking for more exotic ones. And indeed, yesterday Occam’s Razor cuts my Intel PROset problem. I discover it’s the software itself that prevents its installation on Windows 10.

Why Say Occam’s Razor Cuts My Intel PROset Problem?

You can see why I had to haul this old blade out of storage by examining the lead-in graphic. It’s from the Release Notes for the latest version of the Intel PROset and driver software for its wired Ethernet adapters, including for Windows Client OSes. Take a close look at that list. Then consider the version of Windows 10 for which I sought to install this latest 28.2 version — namely Windows 10 22H2.

The installer fired up just fine, but then it took quite a while to do anything. Instead of asking my persmission to commence installation, I got this error message instead:

Occam's Razor Cuts My Intel PROset Problem.10-22H2-error

Despite repeated efforts, I got only this when attempting an install on Windows 10 22H2.

After a couple of failed tries, I figured I’d better check the release notes. And sure enough, I saw what’s missing in the lead-in graphic. This release does NOT support Windows 10 22H2. And that, of course, is why I get that error message. Given that 22H2 is the current Windows 10 version and that 21H2 hit its EOL date on June 13 (a couple of months ago), I have to believe this was a mistake on Intel’s part. But it is what it is, and I have to wait for them to fix it. Until then, I’ll keep running the preceding driver version. Sigh.

FWIW, I just summarized this info in a post to the Intel online forums for their Ethernet adapters and software. I’ll be interested to see what kind of response it evokes, if any. Stay tuned!

Facebooklinkedin
Facebooklinkedin

Achieving Intel Driver Update Silence

I’ve been writing a fair amount lately about updating the Windows OS, apps, applications and drivers. On that last subject — drivers — Intel has an outsized impact on most of my PCs (11 of 13 use Intel CPUs; all of them include at least some Intel chipsets). I’ve been updating Bluetooth, LAN (Wireless and GbE), and Graphics over the last couple of days. I counted anywhere from 5 to 9 mouse clicks needed to work through the various installers. This has me thinking: “What’s Involved in Achieving Intel Driver Update Silence?”

All this said, I’d also like to observe that I use the Intel Driver & Support Assistant (aka DSA) to drive most of my Intel driver upkeep activities. Overall, it does a pretty good job.

Is Achieving Intel Driver Update Silence Even Possible?

To some degree, yes. If you search the Intel site for “silent Intel X install” (where X = one of Bluetooth, Wireless, LAN, Graphic, …) you’ll find articles on how to run installers at the command line in silent mode. I’ll provide a list below, but here’s a discouraging disclaimer from the  Graphic driver how-to (bold emphasis mine).

s, –silent A silent installation that uses default selections in the place of user input. Not all visual indications are disabled in silent mode.

There’s the rub, in the bolded text. Running silent does away with most, but not all, visual indications.

Here’s a list of some very popular how-to’s that cover silent installation:

1. Graphic driver how-to
2. Bluetooth driver how-to
3. Base Driver & ProSET how-to (GbE, etc.)
4. Wi-Fi driver how-to
5. Chipset Installation utility how-to
6. USB 3.0 eXtensible Controller how-to

That’s all I could think of, off the top of my head. Looks like my earlier search formula works pretty well on the Intel site, though. If you need something else, chances are good it will work for that, too. If not, please drop me a line to let me know what else you found or figured out.

Facebooklinkedin
Facebooklinkedin

Still Behind USB4 Curve

Drat! I’ve just upgraded my two Canary test PCs to build 25324. The announcement says “We are adding a USB4 hubs and devices Settings page…” But it had been on a gradual rollout, and I think that is still happening. Why do I say that? Because one of my test machines shows TB4 and USB4 in the Thunderbolt Control Center, but there’s no USB4 page in Settings on that machine. Sigh. Alas I think that means I’m still behind USB4 curve.

That’s what you see in the lead-in graphic above. It shows no USB4 hubs in DevMgr (left), the 25324 build (middle) and the TB4/USB4 items in the Thunderbolt Control Center (right).

If I’m Still Still Behind USB4 Curve, What Now?

It could be one of two things. I don’t have the right drivers loaded (I don’t think that’s the case, but it’s possible) or I don’t have any native USB4-equipped devices. Perhaps MS hasn’t rolled this update all the way out just yet, and my PCs are still on the trailing edge. Given my history with glomming onto new features, it’s darned likely to be the latter.

In the meantime, all I can do is wait for it to show up. I’m also going to reach out to my Lenovo contacts and see if they have any history with this capability on their end. I’ve got two pretty new machines (the P16 Mobile Workstation and the U360 Ultra SFF PC) that have leading-edge TB4/USB4 capabilities. Maybe I’ll have to load the 25324 image on one or both of them and see what comes up.

In the meantime, I’m just sitting on the dock of the bay, watching the tide roll away… Wish me luck!

Concluding Note: If It’s Not There, It’s Not There…

OK, so I’m learning that USB4 support will show up inside Device Manager using the “Devices by connection” view. (See this informative MS Learn article for more info Introduction to the USB4 connection manager in Windows.) If your PC is properly outfitted you’ll see a series of entries that look like this:

⌄ USB4(TM) Host Router (Microsoft)
    › USB(TM) Root Device Router (Microsoft)
          USB4(TM) Device Router (Microsoft)

Alas, none of my PCs apparently have the right kinds of USB-C (or Type A) ports, because I can’t see this on any of them. Gives me a good excuse to ask for another Lenovo eval, I guess!

Facebooklinkedin
Facebooklinkedin

Intel ARC Drivers Arrive Via WU

There’s a new set of Intel ARC drivers for built-in GPUs (and of course, discrete ARC devices as well). How do I know this? I just updated one of my Canary Channel test machines. During that process, I saw the Intel ARC drivers arrive via WU (Windows Update). Until this morning, I had been obtaining them exclusively from the Intel Driver & Support Assistant.

You can see the information about this latest driver from its Intel download page above. Notice the version number: 31.0.101.4146.

How Do I Know Intel ARC Drivers Arrive Via WU?

Check out the driver version in my Update History from the X12 Hybrid Tablet, captured minutes ago. Compare the version number for the “Intel Corporation – Extension” item and you’ll see it’s identical to the version number from the Intel download page.

ARC Drivers Arrive Via WU.history

The name isn’t terribly helpful, but the version number tells me what I need to know.<\p>

What else I can tell you about this alternate method is that it’s MUCH faster than installing the driver (plus supporting software) from the Intel download page. It took only 20-30 seconds to complete. The full-blown Intel package takes minutes.

Does this mean I will occasionally need to visit the Intel page to update the Intel Graphics Command Center software? Nope. The IGCC that works with Intel GPUs is a Windows Store app. And it updates itself, either through routine checks, or when you try to run that app the next time after installing a new driver.

Hey!  I might actually like this. It’s faster and less work that using the Intel Driver & Support Assistant. Good stuff, and good job: MS & Intel!

Facebooklinkedin
Facebooklinkedin

RAPR V0.11.92 Remains a Real Gem

I’m working on revisions to older stories I’ve written for ComputerWorld. Just yesterday, I revised my CIO story for them about purging duplicate and obsolete drivers from the Windows driver store. For that purpose, there simply is no better tool, nor one easier to use than Driver Store Explorer (aka RAPR or RAPR.exe). Indeed among my many Windows cleanup tools, RAPR v0.11.92 remains a real gem.

Why RAPR V0.11.92 Remains a Real Gem

Here’s the deal: when you update a Windows driver, it gets stashed in a special storage area with all the other drivers. What most people don’t know — including admins — is that when you update a driver, its predecessor remains present. And in fact, it never leaves unless you remove it yourself. In a nutshell: that’s one of the things that RAPR does with ease and grace.

When I wrote the afore-linked CIO story back in 2015, RAPR could help you find and remove duplicate and obsolete drivers. (Note: that item is now carried under the ComputerWorld masthead for IDG’s ineffable reasons.) But you had to do it more or less “by hand.” This took some time and effort to accomplish. No more: now RAPR includes a “Select Old Driver(s)” button. It automatically flags items that might potentially be removed from a target PC’s driver store. Click the Delete Driver(s) button next (see lead-in graphic) and RAPR will remove any selected driver that’s not in actual use.

Why (and When) to Use RAPR

The why comes from reducing the size of the driver store. This applies to any and all windows images for which driver updates get applied. If you put a new one in, RAPR lets you take the old one out. For deployment images — which may run on hundreds to thousands of PCs (or more) — this is especially important.

I’ve gotten in the habit of using this tool monthly. I seldom recover less than 100-200 MB of space. And when GPU drivers come into play (most of them occupy 1.0 -1.2 GB of disk space) those numbers really jump. My biggest-ever savings on an older PC that hadn’t been touched for a couple of years was on the order of 4-5 GB. That’s something fairly substantial.

You owe it to yourself to visit Github and download the latest version of RAPR. Use it to look at your standalone PCs, and the Windows images in your deployment library. I predict space savings all the way around.

Facebooklinkedin
Facebooklinkedin

Port Selection Determines Konyead NVMe Workability

OK, then. I think I’ve figured out what’s going on with my previously reported Konyead mystery. The error reported in that recitation is “The request failed due to a fatal device hardware error.” This happens if I plug into a USB-C port that supports neither USB4 nor Thunderbolt 3 or higher. Thus, it looks like port selection determines Konyead NVMe workability. Interesting!

If Port Selection Determines Konyead NVMe Workability…

I can work around my seeming inability to move the Konyead device from one PC to another by carefully choosing which USB-C port I plug into. I’ve also got an Acasis USB4 NVMe enclosure. It switches back and forth between USB4 and USB3.1 mode without difficulty. The Konyead unit cannot do this, apparently. If it’s presented with a lower-level USB port, it simply refuses to work.

What does this tell me? I think I see the evidence in Device Manager. If you look at the composed screencap at the head of this story, it shows two vital bits of data:
1. It shows that the Thunderbolt Control Center sees the device as Intel USB4.0 (rear layer, top left)
2. It also shows the names of the drivers this connection is using (e.g. WpdFs.dll, WpdUpFltr.sys, and WUDFRd.sys).

When I connect to a down-level USB-C port with the Konyead device, it won’t initialize in Disk Management. It also shows a different set of drivers in Device Manager (Disk.sys, EhStorClass.sys, and partmgr.sys). Those are the same drivers that show up when the Acasis is plugged into the same down-level port. The only difference is, the Acasis device also works with those drivers, too. The Konyead device, however, does not.

The mystery is now somewhat illuminated. I think I’m dealing with the consequences of my experimental idea to “buy the cheapest USB4/TB4 NVMe enclosure” to see what happens. Now I know: it works on the higher-end USB-C ports, but not the lower-end ones. An unforeseen, but at least now visible and understandable, consequence of that perhaps rash approach.

I have to laugh. But indeed, that’s the way things sometimes go, here in Windows-World.

Facebooklinkedin
Facebooklinkedin