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 |