Thanks for your help making Windows great!

Really, it’s all about self-interest

Remember way back when you first set up your new computer?  Windows probably prompted you to “join the Customer Experience Improvement Program”.  For those of you who elected to join this program: thanks!  Without any extra effort on your part, you are helping us design a better product.

But with an unwieldy name like “Customer Experience Improvement Program (CEIP)”, it’s probably hard to imagine what, exactly, goes on behind-the-scenes.  Let’s take a look at how your votes help shape a core Windows component like NDIS.

NDIS is the system component that manages your network hardware and low-level network drivers.  NDIS contains a number of APIs that network drivers can use to interact with the operating system.  But not all APIs are created equal: some APIs were added years ago, and don’t really make much sense today.  Yet these obsolete APIs still periodic require work from the NDIS team to maintain them.  Is all that work worth it?

Now we know.  Included with the CEIP in Windows 8.1, NDIS tracks usage of several of our most impressively-obsolete APIs.  And the poll numbers are in: there are several obsolete APIs that are not used by a single computer in the world.  For example, NdisMSetMiniportSecondary is no longer used by anybody.  You can be sure that we’ll remove these unused APIs, so that Windows is smaller and more efficient.  So we win (less maintenance work) and you win (smaller, leaner operating system).  Although joining the CEIP helps Microsoft, it also helps you, because your feedback ensures you’ll get better products in the future.  Really, it’s all about self-interest.  😀

When we talk about a topic like this, it’s always important to ask the question: if Windows sends information back to Microsoft, what about my privacy?  Here’s the official answer.  My unofficial summary: we won’t spam or call you — in fact, we can’t, since we proactively work to avoid accidentally collecting your email or phone number.  Every single type of data that is collected is reviewed by a team with privacy experts, to make sure we only collect boring engineering stuff (like whether drivers use obsolete NDIS APIs).  CEIP is about your computer, not you.

In closing, here’s one more thought to mull over.  Network adapters can calculate IPv4 checksums in hardware, which saves CPU when processing IPv4 packets.  This is a common feature: about 86% of Windows 8.1 users have Ethernet NICs that support TCPv4 checksum offload.  But IPv6 has been growing in popularity, and it has nearly closed the hardware gap: we’re up to 78% of customers who can calculate TCPv6 offloads in hardware.  Maybe 2014 will finally be the year of widespread IPv6 rollout.  😉

Comments

  • Anonymous
    April 24, 2014
    "But IPv6 has been growing in popularity, " I have been hearing that thing for 6 years now; since I joined engineering college. Is it ever going to be only version network speaks? Also, I think that IPv6 was not anymore required because of private networks.  A lecturer told me that. Hope I am not offending you. :)

  • Anonymous
    April 24, 2014
    Is this list of outdated APIs public? I just started working on NDIS, it would be nice to know what not to learn.

  • Anonymous
    April 25, 2014
    IPv6 is indeed much more widely-deployed than it was six years ago.  Not only that, a significantly higher % of endpoints actually run an operating system that has native support for IPv6.  More here: www.worldipv6launch.org/infographic MSDN will say an API is "supported for NDIS 6 drivers".  That means it's not obsolete, and fine to use.  When you look at the example I gave in this article, NdisMSetMiniportSecondary, you see MSDN saying it's "not supported for NDIS 6 drivers".  That of course, is a good indication it's obsolete.