AtaPortGetUnCachedExtension 函式 (irb.h)
AtaPortGetUncachedExtension 例程會配置 CPU 和裝置共用的未快取通用緩衝區。
語法
PVOID AtaPortGetUnCachedExtension(
[in] PVOID ChannelExtension,
[in] ULONG UncachedExtensionSize,
[in] ULONG IrbExtensionSize
);
參數
[in] ChannelExtension
通道延伸模組的指標。
[in] UncachedExtensionSize
指定未快取之通用緩衝區的長度,以位元組為單位。 如果迷你埠驅動程式不需要未快取的擴充功能,請將此參數設定為 0。
[in] IrbExtensionSize
指定迷你埠驅動程序針對每個要求記憶體所需的大小,以位元組為單位,如果有的話。
如果迷你埠驅動程式不維護需要記憶體的每個 IRB 資訊,請將此參數設定為 0。
傳回值
AtaPortGetUncachedExtension 傳回未快取延伸模組的虛擬位址指標。 如果無法設定要求的記憶體,或先前設定的記憶體,則會傳回 NULL。
言論
迷你埠驅動程式可以使用 IRB 擴充功能作為驅動程式決定、要求特定資訊的記憶體,例如處理特定要求所需的數據。
埠驅動程式不會初始化 IRB 擴充功能,而是將指標設定至每個 IRB 中傳送至迷你埠驅動程式的擴充功能指標。
HBA 硬體可以安全地存取 IRB 擴充功能。
迷你埠驅動程式不得從其 IdeHwControl 例程以外的任何例程呼叫 AtaPortGetUncachedExtension,而且只有在處理 StartChannel的控件動作時。 從其他迷你埠驅動程式例程呼叫 AtaPortGetUncachedExtension 會導致作業不正確,甚至系統失敗。 埠驅動程式會在使用 StopChannel 控件動作叫用 ideHwControl 之後,自動釋放未快取的擴充功能。
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | irb.h (包括 Ata.h、Irb.h) |
連結庫 | Ataport.lib;Pciidex.lib |