Método IPortWaveCíclico::NewSlaveDmaChannel (portcls.h)

El NewSlaveDmaChannel método crea una nueva instancia de un canal DMA subordinado.

Sintaxis

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

Parámetros

[out] DmaChannel

Puntero a una variable de puntero asignada por el autor de la llamada en la que el método escribe un puntero en la nueva interfaz IDmaChannelSlave del objeto de canal DMA. Especifique un valor de puntero válido que no sea NULL para este parámetro.

[in] OuterUnknown

Puntero a la interfaz IUnknown de un objeto que necesita agregar el objeto de canal DMA. Este parámetro es opcional. Si no se requiere la agregación, especifique este parámetro como NULL.

[in] ResourceList

Puntero a un objeto IResourceList . Esta lista de recursos contiene el recurso que describe el canal DMA.

[in] DmaIndex

Indexe en la lista de recursos del descriptor DMA-channel. La función usa este valor como parámetro de llamada al método IResourceList::FindxxxEntry del objeto ResourceList.

[in] MaximumLength

Longitud máxima en bytes del búfer DMA cíclico que se asociará a este canal.

[in] DemandMode

Indica si el dispositivo asociado al canal DMA admite el modo de demanda.

[in] DmaSpeed

La velocidad DMA se puede especificar como uno de los siguientes valores de enumeración DMA_SPEED: Compatible, TypeA, TypeB, TypeC o TypeF.

Valor devuelto

NewSlaveDmaChannel devuelve STATUS_SUCCESS si la llamada se realizó correctamente. De lo contrario, el método devuelve un código de error adecuado.

Comentarios

Nota

Microsoft admite un entorno diverso e inclusivo. Este artículo contiene referencias a la terminología que la guía de estilo de Microsoft para la comunicación sin sesgo reconoce como exclusionary. La palabra o frase se usa en este artículo para la coherencia porque aparece actualmente en el software. Cuando el software se actualice para quitar el idioma, este artículo se actualizará para que esté en alineación.

Los parámetros MaximumLength, DemandMode y DmaSpeed son similares a los miembros de la estructura DEVICE_DESCRIPTION con los mismos nombres.

Un dispositivo WaveCíclico que carece de funcionalidades de hardware DMA se conoce como dispositivo subordinado. Por el contrario, un dispositivo maestro tiene hardware DMA integrado de maestro de bus. Un dispositivo subordinado debe confiar en el controlador DMA del sistema para realizar las transferencias de datos que requiera. El NewSlaveDmaChannel método crea un objeto de canal DMA para un dispositivo subordinado. Para crear un objeto de canal DMA para un dispositivo maestro, llame al método IPortWaveCíclico::NewMasterDmaChannel en su lugar. El controlador de audio de ejemplo sb16 del Kit de controladores de Microsoft Windows (WDK) es un ejemplo de un controlador de miniporte WaveCíclico para un dispositivo subordinado. Para obtener más información sobre los dispositivos maestros y subordinados, consulte IDmaChannel e IDmaChannelSlave.

Los parámetros DmaChannel, OuterUnknown y ResourceList siguen las convenciones de recuento de referencias para objetos COM.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado portcls.h (incluir Portcls.h)
IRQL PASSIVE_LEVEL

Consulte también

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCíclico

IPortWaveCíclico::NewMasterDmaChannel

IResourceList