PcNewDmaChannel function (portcls.h)

The PcNewDmaChannel function creates a new DMA-channel object. This function is obsolete; for more information, see the following comments.


  [out]          PDMACHANNEL         *OutDmaChannel,
  [in, optional] PUNKNOWN            OuterUnknown,
  [in]           POOL_TYPE           PoolType,
  [in]           PDEVICE_DESCRIPTION DeviceDescription,
  [in]           PDEVICE_OBJECT      DeviceObject


[out] OutDmaChannel

Output pointer for the DMA-channel object created by this function. This parameter points to a caller-allocated pointer variable into which the function outputs a reference to the newly created IDmaChannel object. Specify a valid, non-NULL pointer value for this parameter.

[in, optional] OuterUnknown

Pointer to the IUnknown interface of an object that needs to aggregate the object. Unless aggregation is required, set this parameter to NULL.

[in] PoolType

Specifies the type of storage pool from which the object is to be allocated. This is a POOL_TYPE enumeration value. Specify a nonpaged pool type for this parameter.

[in] DeviceDescription

Pointer to a description of the physical device for which the caller is requesting a DMA object. This parameter points to a structure of type DEVICE_DESCRIPTION.

[in] DeviceObject

Pointer to the device object for the physical adapter device. This parameter points to a system structure of type DEVICE_OBJECT.

Return value

PcNewDmaChannel returns STATUS_SUCCESS if the call was successful. Otherwise, it returns an appropriate error code.


PcNewDmaChannel is obsolete. For all new audio drivers, use one of the following IPortWave Xxx::NewXxxDmaChannel methods in place of PcNewDmaChannel:




For the sake of backward compatibility, the PortCls system driver will continue to support PcNewDmaChannel, and existing drivers can continue to use this function.

Specify the PoolType parameter to be one of the nonpaged pool types defined in the POOL_TYPE enumeration. The DMA-channel object must not reside in paged memory because several of the methods in the IDmaChannel interface can be called from IRQL DISPATCH_LEVEL.

The OutDmaChannel and OuterUnknown parameters follow the reference-counting conventions for COM objects.


Microsoft supports a diverse and inclusive environment. This article contains references to terminology that the Microsoft style guide for bias-free communication recognizes as exclusionary. The word or phrase is used in this article for consistency because it currently appears in the software. When the software is updated to remove the language, this article will be updated to be in alignment.


Minimum supported client Obsolete. For all new audio drivers, use a IPortWaveXxx::NewXxxDmaChannel method instead. The PortCls system driver implements the PcNewDmaChannel function in Microsoft Windows 98/Me and in Windows 2000 and later operating systems.
Target Platform Universal
Header portcls.h (include Portcls.h)
Library Portcls.lib

See also