Metodo IPortWaveCyclic::NewSlaveDmaChannel (portcls.h)

Il NewSlaveDmaChannel metodo crea una nuova istanza di un canale DMA subordinato.

Sintassi

NTSTATUS NewSlaveDmaChannel(
  [out] PDMACHANNELSLAVE *DmaChannel,
  [in]  PUNKNOWN         OuterUnknown,
  [in]  PRESOURCELIST    ResourceList,
  [in]  ULONG            DmaIndex,
  [in]  ULONG            MaximumLength,
  [in]  BOOLEAN          DemandMode,
  [in]  DMA_SPEED        DmaSpeed
);

Parametri

[out] DmaChannel

Puntatore a una variabile puntatore allocata dal chiamante in cui il metodo scrive un puntatore alla nuova interfaccia IDmaChannelSlave dell'oggetto DMA-channel . Specificare un valore puntatore non NULL valido per questo parametro.

[in] OuterUnknown

Puntatore all'interfaccia IUnknown di un oggetto che deve aggregare l'oggetto DMA-channel. Questo parametro è facoltativo e, Se l'aggregazione non è necessaria, specificare questo parametro come NULL.

[in] ResourceList

Puntatore a un oggetto IResourceList . Questo elenco di risorse contiene la risorsa che descrive il canale DMA.

[in] DmaIndex

Indice nell'elenco di risorse del descrittore del canale DMA. La funzione usa questo valore come parametro di chiamata al metodo IResourceList dell'oggetto ResourceList ::FindxxxEntry.

[in] MaximumLength

Lunghezza massima in byte del buffer DMA ciclico associato a questo canale.

[in] DemandMode

Indica se il dispositivo associato al canale DMA supporta la modalità richiesta.

[in] DmaSpeed

La velocità DMA può essere specificata come uno dei valori di enumerazione DMA_SPEED seguenti: Compatibile, TypeA, TypeB, TypeC o TypeF.

Valore restituito

NewSlaveDmaChannel restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, il metodo restituisce un codice di errore appropriato.

Commenti

Nota

Microsoft supporta un ambiente diversificato e inclusivo. Questo articolo contiene riferimenti alla terminologia che la guida allo stile Microsoft per la comunicazione senza pregiudizi riconosce come esclusioni. La parola o la frase viene usata in questo articolo per la coerenza perché attualmente viene visualizzata nel software. Quando il software viene aggiornato per rimuovere la lingua, questo articolo verrà aggiornato in allineamento.

I parametri MaximumLength, DemandMode e DmaSpeed sono simili ai membri della struttura DEVICE_DESCRIPTION con gli stessi nomi.

Un dispositivo WaveCyclic che manca di funzionalità hardware DMA viene definito dispositivo subordinato. Al contrario, un dispositivo master ha hardware DMA predefinito per il mastering del bus. Un dispositivo subordinato deve basarsi sul controller DMA di sistema per eseguire eventuali trasferimenti di dati necessari. Il NewSlaveDmaChannel metodo crea un oggetto canale DMA per un dispositivo subordinato. Per creare un oggetto canale DMA per un dispositivo master, chiamare invece il metodo IPortWaveCyclic::NewMasterDmaChannel . Il driver audio di esempio sb16 in Microsoft Windows Driver Kit (WDK) è un esempio di un driver miniport WaveCyclic per un dispositivo subordinato. Per altre informazioni sui dispositivi master e subordinati, vedere IDmaChannel e IDmaChannelSlave.

I parametri DmaChannel, OuterUnknown e ResourceList seguono le convenzioni di conteggio dei riferimenti per gli oggetti COM.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione portcls.h (includere Portcls.h)
IRQL PASSIVE_LEVEL

Vedi anche

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewMasterDmaChannel

IResourceList