共用方式為


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) 。 這通常表示提供的位址不會對應到一般緩衝區區域。 指定的 RegisterPort 必須位於 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機碼內,新增名為VerifyLevel的REG_DWORD專案。 指派給這個專案的值會決定哪些 Storport 驗證測試將會作用中。 值0x1會提供最大驗證。

  3. 重新啟動電腦。

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

啟用而不重新開機

一般而言,您無法在沒有重新開機 (重新開機) 任何 Windows 作業系統上的電腦上重新開機,才能啟動或停用 Storport 驗證。 StorPort.sys驅動程式只會在載入時讀取 VerifyLevel登錄專案,這通常是在開機時。 不過,如果您在新增登錄專案時未載入 StorPort.sys 驅動程式,或是卸載並重載,您可以在 Windows Vista 和更新版本的 Windows 上啟用 Storport 驗證,而不重新開機電腦。