PcNewDmaChannel function

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

Syntax


NTSTATUS PcNewDmaChannel(
  _Out_    PDMACHANNEL         *OutDmaChannel,
  _In_opt_ PUNKNOWN            OuterUnknown,
  _In_     POOL_TYPE           PoolType,
  _In_     PDEVICE_DESCRIPTION DeviceDescription,
  _In_     PDEVICE_OBJECT      DeviceObject
);

Parameters

OutDmaChannel [out]

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.

OuterUnknown [in, optional]

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

PoolType [in]

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.

DeviceDescription [in]

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.

DeviceObject [in]

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.

Remarks

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

IPortWavePci::NewMasterDmaChannel

IPortWaveCyclic::NewMasterDmaChannel

IPortWaveCyclic::NewSlaveDmaChannel

For the sake of backward compatibility, the PortCls system driver will continue to support PcNewDmaChannel, and existing drivers can continue to use this function. For more information, see DirectSound Hardware Acceleration in 64-Bit Versions of Windows XP.

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.

Requirements

Target platform

Universal

Version

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.

Header

Portcls.h (include Portcls.h)

Library

Portcls.lib

IRQL

PASSIVE_LEVEL

See also

IDmaChannel
POOL_TYPE
DEVICE_DESCRIPTION
DEVICE_OBJECT

 

 

Send comments about this topic to Microsoft

Show: