共用方式為


IPortWaveCyclic::NewSlaveDmaChannel 方法 (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 通道物件的 IDmaChannelSlave 介面。 為此參數指定有效的非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列舉值:CompatibleTypeATypeBTypeCTypeF

傳回值

如果呼叫成功,NewSlaveDmaChannel 會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。

言論

注意

Microsoft支持多樣化的包容性環境。 本文包含術語的參考,Microsoft樣式指南可辨識為排除。 本文中會使用單字或片語來保持一致性,因為它目前會出現在軟體中。 當軟體更新為移除語言時,本文將會更新為對齊方式。

參數 MaximumLengthDemandModeDmaSpeed,這在意義上與具有相同名稱的 DEVICE_DESCRIPTION 結構成員相似。

缺少 DMA 硬體功能的 WaveCyclic 裝置稱為 次級裝置。 相反地,主要裝置 具有內建總線主控 DMA 硬體。 次級裝置必須依賴系統 DMA 控制器來執行所需的任何數據傳輸。 NewSlaveDmaChannel 方法會為次級裝置建立 DMA 通道物件。 若要為主要裝置建立 DMA 通道物件,請改為呼叫 IPortWaveCyclic::NewMasterDmaChannel 方法。 Microsoft Windows 驅動程式套件 (WDK) 中的 sb16 範例音訊驅動程式是次級裝置的 WaveCyclic 迷你埠驅動程式範例。 如需主要和次級裝置的詳細資訊,請參閱 IDmaChannelIDmaChannelSlave

DmaChannelOuterUnknownResourceList 參數遵循 COM 物件的 參考計數慣例

要求

要求 價值
目標平臺 普遍
標頭 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另請參閱

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewMasterDmaChannel

IResourceList