共用方式為


SCSI 埠 I/O 模型

SCSI 埠驅動程式會透過分派資料表和驅動程式物件中的一系列迷你埠驅動程式回呼常式指標來與其迷你埠驅動程式通訊。 迷你埠驅動程式會從其DriverEntry常式呼叫ScsiPortInitialize,以使用這些回呼指標初始化 SCSI 埠的分派資料表和驅動程式物件。 其中一個回呼指標是迷你埠驅動程式開始 I/O 常式的進入點,用來處理 I/O 要求。 埠驅動程式會將這個指標指派給驅動程式物件的 DriverStartIo 成員。

每當 SCSI 埠收到來自較高層級驅動程式的 I/O 要求時,它會將要求排入內部佇列中。 如需 SCSI 埠內部佇列的詳細資訊,請參閱 SCSI 埠驅動程式的佇列管理

一旦目標裝置準備好接收下一個 I/O 要求,SCSI 埠會呼叫 IoStartPacket,接著會呼叫儲存在 DriverObject-DriverStartIo >中的迷你埠驅動程式啟動 I/O 回呼常式。 如需迷你埠驅動程式啟動 I/O 常式之作業和必要特性的相關資訊,請參閱 SCSI Miniport 驅動程式的 HwScsiStartIo 常式

SCSI 埠會先引發處理器的 IRQL,再呼叫迷你埠驅動程式的啟動 I/O 常式,以遮罩中斷,並確保啟動 I/O 常式已同步處理對重要作業系統和驅動程式結構的存取。

雖然儲存體類別驅動程式與 SCSI 埠驅動程式之間的 I/O 要求封包流程是非同步,但 SCSI 埠驅動程式與目標裝置之間的 I/O 要求封包流程是同步的。 SCSI 埠會使用內部佇列系統,讓類別驅動程式能夠在先前的 I/O 要求完成之前,將新的 I/O 要求傳送至 SCSI 埠。 不過,SCSI 埠不會將下一個 I/O 要求傳送到目標裝置,直到收到迷你埠驅動程式通知,迷你埠驅動程式已準備好接收下一個 I/O 要求為止。 迷你埠驅動程式會呼叫 ScsiPortNotification 程式庫常式來通知 SCSI 埠。

Storport 驅動程式提供更有彈性的 I/O 模型,特別是與中斷的遮罩有關。 如需 Storport I/O 模型與 SCSI 埠 I/O 模型之間的差異相關資訊,請參閱 Storport I/O 模型