共用方式為


Storport 驗證

Storport 驗證功能會監視 Storport 迷你埠驅動程式與埠驅動程式之間的互動。 如果迷你埠驅動程式誤用常式、不正確回應埠驅動程式的要求,或花費過多的時間來回應要求,則會發出錯誤檢查。

備註

Storport 驗證功能僅適用於 Windows Vista 和更新版本的 Windows。

Storport 驗證偵測到的違規行為

Storport 驗證功能可以偵測 Storport 常式的數個誤用。 也可以單獨禁用其中一些檢查。

如果 Storport 迷你埠驅動程式出現下列其中一個違規,Storport 驗證功能會發出錯誤檢查 0xF1 或錯誤檢查 0xC4:

  • 迷你埠驅動程式會將錯誤的引數 (NULL 指標) 傳遞至 StorPortInitialize 常式。

  • 迷你埠驅動程式會呼叫 StorPortStallExecution ,並指定超過 0.1 秒的延遲,讓處理器停滯過長的時間。

  • StorPortFreeDeviceBase 只能從迷你埠驅動程式的 HwStorFindAdapter 常式呼叫。

  • StorPortGetUncachedExtension 只能從迷你埠驅動程式的 HwStorFindAdapter 常式呼叫,而且只能針對匯流排主機配接器呼叫。 迷你埠必須先設定 HW_INITIALIZATION_DATA (Storport) 結構的 SrbExtensionSize,才能呼叫 StorPortGetUncachedExtension。

  • StorPortGetDeviceBase 常式僅支援系統隨插即用 (PnP) 管理員指派給驅動程式的位址。

  • 迷你埠驅動程式會將無效的虛擬位址傳遞至其中一個 StorPortReadxxxStorPortWritexxx 常式 (例如 StorPortReadRegisterUcharStorPortWritePortBufferUlong) 。 這通常表示提供的位址不會對應至通用緩衝區區域。 指定的 暫存器 必須位於 StorPortGetDeviceBase 常式所傳回的對應記憶體空間範圍內。 只有 x86 型系統才支援此檢查。

如需 Storport 驗證所使用的錯誤檢查參數清單,請參閱 錯誤檢查0xF1 (SCSI_VERIFIER_DETECTED_VIOLATION) 。 除了錯誤檢查0xF1之外,Storport 驗證還使用 錯誤檢查0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) 。

備註

錯誤檢查0xF1 用於 SCSI 驗證和 Storport 驗證。

啟用 Storport 驗證選項

啟用 Storport 驗證選項的程式與啟用其他驅動程式驗證器選項的程式不同。

  1. 使用驅動程式驗證器管理員或 Verifier.exe 命令列,啟動迷你埠驅動程式的驗證。 由於 Storport 驗證無法作為選項使用,因此您必須選取至少一個 其他 驅動程式驗證器選項。 如需詳細資訊,請參閱 選取驅動程式驗證器選項選取要驗證的驅動程式

  2. 使用 regedit.exe開啟登錄。 在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorPort 索引鍵中,新增名為 Verifier 的子機碼。 如果 StorPort 金鑰不存在,您必須建立它。 在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\STORPort\Verifier 鍵中,新增名為 VerifyLevelREG_DWORD項目。 指派給此專案的值會決定哪些 Storport 驗證測試會處於作用中狀態。 0x1值將提供最大的驗證。

  3. 重新啟動電腦

如果 VerifyLevel 值不存在,或等於 0xFFFFFFFF,則會停用 Storport 驗證。

無需重新啟動即可啟動

一般來說,如果不重新啟動(重新啟動)任何 Windows 作業系統上的電腦,您就無法啟動或停用 Storport 驗證。 StorPort.sys 驅動程式僅在載入時讀取 VerifyLevel 登錄項目,通常是在系統啟動時。 不過,如果您在新增登錄專案時未載入 StorPort.sys 驅動程式,或卸載並重新載入驅動程式,您可以在 Windows Vista 和更新版本的 Windows 上啟用 Storport 驗證,而不需要重新啟動電腦。