共用方式為


IDE_HW_BUILDIO回呼函式 (irb.h)

IdeHwBuildIo 迷你埠驅動程式例程會針對每個傳入 I/O 要求呼叫一次。

注意 ATA 埠驅動程式和 ATA 迷你埠驅動程式模型未來可能會改變或無法使用。 相反地,我們建議使用 Storport 驅動程式Storport 迷你埠 驅動程式模型。
 

語法

IDE_HW_BUILDIO IdeHwBuildio;

BOOLEAN IdeHwBuildio(
  [in] PVOID ChannelExtension,
  [in] PIDE_REQUEST_BLOCK Irb
)
{...}

參數

[in] ChannelExtension

迷你埠驅動程式通道延伸模組的指標。

[in] Irb

IDE_REQUEST_BLOCK 類型結構的 指標,定義整合式裝置電子 (IDE) 輸入/輸出要求區塊 (要處理的 IRB) 。

傳回值

IdeHwBuildIo 會傳回 TRUE ,以認可 IDE_REQUEST_BLOCK 結構的收據。 埠驅動程式會忽略 FALSE 的傳回值。

備註

迷你埠驅動程式會提供 AtaHwBuildlo 例程,以啟用中斷來執行未同步處理的 I/O 處理。 在 IdeHwBuildIo 完成要求的所有未同步處理之後,它會返回埠驅動程式,而埠驅動程式會將要求傳遞至迷你埠驅動程式的 IdeHwStartIo 例程,以執行需要同步處理的工作。

迷你埠驅動程式在執行 IdeHwBuildIo 例程時,必須觀察某些限制。 迷你埠驅動程式會呼叫 IdeHwBuildIo ,而不需要保留任何鎖定。 特別是,迷你埠驅動程式不得觸碰其通道延伸模組中的任何共享數據,也無法呼叫 ATA 埠驅動程式所導出的任何例程。

如果迷你埠驅動程式在執行 IdeHwBuildIo 例程時必須完成要求,則必須將適當的完成狀態值指派給 Irb 參數所指向之IDE_REQUEST_BLOCK結構的 IrbStatus 成員。 迷你埠驅動程式不得將 IrbStatus 設定為 IRB_STATUS_PENDING 的值。

迷你埠驅動程式可以使用 IdeHwBuildIo 例程,向埠驅動程式指出 IRB 的處理方式。 例如,迷你埠驅動程式可以藉由將 IRB 的 IrbFlags 成員設定為適當的值,要求埠驅動程式將緩衝區對應至 DataBuffer。 迷你埠驅動程式不應該要求與要求相關聯的緩衝區必須對應,除非要求是某種類型的數據傳輸。

IdeHwBuildIo 例程類似於 Storport 的 HwStorBuildIo 例程功能。 如需 HwStorBuildIo 例程的詳細資訊,請參閱 Unsynchronized HwStorBuildIo 例程

IdeHwBuildIo 是選擇性例程。

規格需求

需求
目標平台 桌面
標頭 irb.h (包含 Irb.h)

另請參閱

IDE_REQUEST_BLOCK

IdeHwStartIo