IPortWaveCyclic::NewSettingeDmaChannel 方法 (portcls.h)
方法 NewSlaveDmaChannel
會建立次級 DMA 通道的新實例。
語法
NTSTATUS NewSlaveDmaChannel(
[out] PDMACHANNELSLAVE *DmaChannel,
[in] PUNKNOWN OuterUnknown,
[in] PRESOURCELIST ResourceList,
[in] ULONG DmaIndex,
[in] ULONG MaximumLength,
[in] BOOLEAN DemandMode,
[in] DMA_SPEED DmaSpeed
);
參數
[out] DmaChannel
呼叫端配置的指標變數的指標,方法會將指標寫入至新 DMA 通道物件的 IDmaChannelSysteme 介面。 指定此參數的有效非NULL 指標值。
[in] OuterUnknown
需要匯總 DMA 信道物件之物件的 IUnknown 介面指標。 這是選擇性參數。 如果不需要匯總,請將此參數指定為 NULL。
[in] ResourceList
IResourceList 物件的指標。 此資源清單包含描述 DMA 通道的資源。
[in] DmaIndex
DMA 通道描述元資源清單中的索引。 函式會使用此值做為 ResourceList 物件的 IResourceList::FindxxxEntry 方法的呼叫參數。
[in] MaximumLength
與這個通道相關聯的迴圈 DMA 緩衝區長度上限,以位元組為單位。
[in] DemandMode
指出與 DMA 通道相關聯的裝置是否支援需求模式。
[in] DmaSpeed
DMA 速度可以指定為下列其中一個DMA_SPEED列舉值:相容、TypeA、TypeB、TypeC 或 TypeF。
傳回值
NewSlaveDmaChannel
如果呼叫成功,則會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。
備註
注意
Microsoft 支援多元且包容性的環境。 本文包含 Microsoft 適用於無偏差通訊 的術語參考,可辨識為排除。 本文中會使用單字或片語進行一致性,因為它目前會出現在軟體中。 當軟體更新為移除語言時,本文將會更新為一致。
Parameters MaximumLength、 DemandMode 和 DmaSpeed 與具有相同名稱之 DEVICE_DESCRIPTION 結構的成員類似。
缺少 DMA 硬體功能的 WaveCyclic 裝置稱為 次級裝置。 相反地, 主要裝置 具有內建總線主控 DMA 硬體。 從屬裝置必須依賴系統 DMA 控制器來執行所需的任何數據傳輸。 方法 NewSlaveDmaChannel
會為次級裝置建立 DMA 通道物件。 若要建立主要裝置的 DMA 通道物件,請改為呼叫 IPortWaveCyclic::NewMasterDmaChannel 方法。 Microsoft Windows 驅動程式套件中的 sb16 範例音訊驅動程式 (WDK) 是次級裝置的 WaveCyclic 迷你埠驅動程式範例。 如需主要和次級裝置的詳細資訊,請參閱 IDmaChannel 和 IDmaChannel一文。
DmaChannel、OuterUnknown 和 ResourceList 參數會遵循 COM 物件的參考計數慣例。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |