微軟修復Windows 7讀取SD卡時導致數(shù)據(jù)損壞的問題

2009/11/28 11:48:20    編輯:軟媒 - 笨笨     字體:【

Win7之家afsion.com.cn):微軟修復Windows 7讀取SD卡時導致數(shù)據(jù)損壞的問題

  據(jù)國外媒體報道,日前,微軟針對最新一代客戶端操作系統(tǒng)Windows7發(fā)布了一個更新,用于解決運行在Windows 7上的安全數(shù)字卡(SD)中的數(shù)據(jù)損壞問題。
  目前,所有使用Windows 7的消費者都能夠通過微軟下載中心下載這個更新,適用于所有Windows 7版本的用戶。
  據(jù)微軟表示,一般來講,只有使用NTFS格式SD卡的用戶,才會受到數(shù)據(jù)損壞問題的影響。
  至于導致這個問題的原因,微軟解釋道,當用戶使用高級直接閃存(ADMA)訪問去實現(xiàn)SD卡和Windows7之間的數(shù)據(jù)傳輸?shù)臅r候,數(shù)據(jù)損壞問題就會出現(xiàn)。
  微軟發(fā)言人指出,在ADMA傳輸過程中,安全數(shù)字總線驅(qū)動器(Sdbus.sys)會將操作系統(tǒng)的DMA數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換成SD卡的ADMA數(shù)據(jù)結(jié)構(gòu)。DMA和ADMA數(shù)據(jù)結(jié)構(gòu)也被稱為描述符表,描述符表包含一個數(shù)據(jù)長度值和緩沖區(qū)的地址。
  一般來講,數(shù)據(jù)長度字段是16位,最大大小是64K(字節(jié))。然而,在數(shù)據(jù)轉(zhuǎn)換過程中,Sdbus.sys驅(qū)動程序不檢查在系統(tǒng)的描述符表緩沖區(qū)的大小。因此,Sdbus.sys驅(qū)動程序可能會將SD描述符表的數(shù)據(jù)長度設(shè)置錯誤。例如,Sdbus.sys驅(qū)動程序可能會將數(shù)據(jù)長度的值設(shè)置成大于0xFFFF,緊接著就會損壞的I/O,這也就會導致數(shù)據(jù)損壞。