為什麼Windows自帶的很多驅動,日期都是2006年6月21日?

今天跟朋友扯UASP的時候發現的……

按理說06年應該還沒這個協議,於是我看了下其他的

(還有很多都是這個日期

那麼這個日期有什麼特別的呢?


這個日期是在所有的系統內置驅動的INF文件里定義的。所以實際上驅動程序文件的時間可能很新,但是驅動日期的標註會是2006/06/21。

這個日期的由來就很簡單了…

他們都是這一天生成的。

應該是隨著Vista的生產,RTM用的驅動都是這一天生成的INF文件。之後只要INF文件不需要更新,就只更新.sys驅動文件。

至於UASP這麼新的協議為什麼驅動文件還是如此標註?還是很簡單,UASP只是一種新的SCSI Adapter,所以只是複製了一個INF,把內容改為了UASPStor.sys相應的內容。驅動日期沒有動,大概是因為流程上沒有要求去更新。


Vista的RTM時間是2006年11月,所以很可能6月21號是個milestone。


貌似是硬體ID匹配的情況下會優先使用日期更新的驅動,Windows不更新驅動日期是為了避免覆蓋掉廠商提供的驅動。

來源:Is Windows 10 still a polished Vista kernel? ? /r/windows


官方的在Reddit的回復是

當PNP(即插即用)排列驅動優先順序的時候,它首先查看和驅動程序匹配的硬體ID。如果出現兩個驅動都匹配硬體,那麼篩選條件就是驅動日期。如果你有一台可以使用內置驅動的設備,但是你需要在設備上安裝某些定製/OEM驅動之後,每次當微軟需要更新驅動的時候,由於這個日期要比定製日期更新,因此都會重複覆蓋你的定製驅動。

那麼我們應該如何避免這種情況呢?不管該驅動何時更新的(驅動版本號會進行更新,如果日期相同那麼版本號則是下個篩選因素),我們發布的每個驅動都會採用Vista系統RTM的日期。因此自Vista系統發布以來的所有驅動都能兼容最新的Windows版本,而你所安裝的驅動都比Vista RTM更新,從而確保用戶安裝的驅動排在首位。


為了統一格式吧,你去WindowsSystem32里看看,根據日期排序,會有發現的


事實上證明直到現在的Windows還相對於十年前的Vista沒動多少.....


推薦閱讀:

Windows 中如何創建一個指向某相對路徑的快捷方式(即快捷方式的目標路徑為某相對路徑) ?如果不能,為什麼?
「記事本」程序的BUG?
為什麼 Windows 的命令行這麼難用?
筆記本設置了永不睡眠還是進入睡眠狀態怎麼破?
有沒有適合win10的非國產殺毒軟體?

TAG:MicrosoftWindows | 冷知識 | 驅動程序 |