2010年4月26日 星期一

USB Timeout Related Issue

USB stick 插入和拔出的時間問題。

在USB Host Client Driver Registry Settings 有一項

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\Mass_Storage_Class\6]
MediaPollInterval:1250 ; msec
ReadSectorTimeout:2000
WriteSectorTimeout:2000
ScsiCommandTimeout:5000
UnitAttnRepeat:10

UnitAttnRepeat 是指測試 Unit 是否Ready,其測試次數。

flow:
IOCTL_DISK_READ, IOCTL_DISK_WRITE ( disk.c ) -->
ScsiRWSG --> ScsiReadWrite ( scsi2.c )  --> ScsiUnitAttention
--> ScsiTestUnitReady

如果 UnitAttnRepeat 為10的話,則 ScsiTestUnitReady 執行10次

而MediaPollInterval
則是在 disk.c 的 MediaChangeThread() 裡面會用到

沒有留言: