IDE_CHANNEL_ENABLED回呼函式 (irb.h)
AtaControllerChannelEnabled 迷你埠驅動程式例程會指出是否已啟用指定的通道。
注意
ATA 埠驅動程式和 ATA 迷你埠驅動程式模型未來可能會改變或無法使用。 相反地,我們建議使用 Storport 驅動程式 和 Storport 迷你埠 驅動程式模型。
語法
IDE_CHANNEL_ENABLED IdeChannelEnabled;
ATA_CHANNEL_STATE IdeChannelEnabled(
PVOID ControllerExtension,
ULONG Channel
)
{...}
參數
ControllerExtension
[in]控制器延伸模組的指標。
Channel
[in]要啟用的通道。
傳回值
AtaControllerChannelEnabled 會傳回類型 為 ATA_CHANNEL_STATE 的列舉值,其可具有下列任何值:
傳回碼 | 意義 |
---|---|
ChannelStateEnabled | 指出指定的通道已啟用。 |
ChannelStateDisabled | 表示指定的通道已停用。 |
ChannelStateUnKnown | 表示無法判斷通道的狀態。 |
備註
下列順序描述迷你埠驅動程式和埠驅動程式如何互動,以判斷已啟用哪些控制器通道:
埠驅動程式會使用控制動作 IdeStart 呼叫迷你埠驅動程式的 AtaAdapterControl 例程。
當迷你埠驅動程式使用控制動作 IdeStart 處理 AtaAdapterControl 例程時,它會初始化 IDE_CONTROLLER_CONFIGURATION的 NumberOfChannels 成員,以指出已啟用的通道數目。
在 AtaAdapterControl 例程傳回之後,埠驅動程式會針對 AtaAdapterControl 所傳回的每個 ControllerConfiguration 結構中指定的 NumberOfChannels 呼叫 AtaControllerChannelEnabled 一次。
此例程不應該有控制站作業很重要的步驟。 在某些情況下,例如在損毀傾印作業期間,完全不會呼叫此函式。 此外,只有在PCIIDEx回應QueryDeviceRelations IRP時,才會在通道重新啟動時呼叫此函式。
AtaControllerChannelEnabled 是選擇性例程。 如果迷你埠驅動程式未實作此例程,埠驅動程式會載入預設處理程式。 如果埠驅動程式載入預設處理程式,則會假設在處理 IdeStart 動作時, AtaAdapterControl 所傳回的 ControllerConfiguration 結構中 NumberOfChannels 所指定的所有通道。 此例程可讓PCIIDEx只載入已啟用通道的 ATA 埠驅動程式。 這樣做可讓疏鬆通道支援 (例如通道 0、通道 1、通道 3、通道 3、通道 4 和通道 6,但通道 2 和通道 5) 。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | irb.h (包含 Irb.h) |