IDE_HW_BUILDIO回呼函式 (irb.h)
IdeHwBuildIo 迷你埠驅動程式例程會針對每個傳入 I/O 要求呼叫一次。
語法
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) |