Поделиться через


Метод IPortWavePci::NewMasterDmaChannel (portcls.h)

Метод NewMasterDmaChannel создает новый экземпляр канала DMA master шины.

Синтаксис

NTSTATUS NewMasterDmaChannel(
                 PDMACHANNEL   *OutDmaChannel,
  [in, optional] PUNKNOWN      OuterUnknown,
  [in]           POOL_TYPE     PoolType,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           BOOLEAN       ScatterGather,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           BOOLEAN       IgnoreCount,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed,
  [in]           ULONG         MaximumLength,
  [in]           ULONG         DmaPort
);

Параметры

OutDmaChannel

[in, optional] OuterUnknown

Указатель на интерфейс IUnknown объекта, который должен агрегировать объект канала DMA. Этот параметр является необязательным. Если агрегирование не требуется, укажите этот параметр как NULL.

[in] PoolType

Указывает тип пула носителей, из которого будет выделен объект. Это значение перечисления POOL_TYPE . Укажите для этого параметра тип непагрегированного пула.

[in, optional] ResourceList

Указатель на список ресурсов драйвера мини-порта, который является объектом IResourceList . Этот параметр является необязательным и может быть указан как NULL. Метод NewMasterDmaChannel в настоящее время не использует этот параметр.

[in] ScatterGather

Запрашивает, чтобы канал DMA поддерживал DMA точечной и сборной. Всегда присвойте этому параметру значение TRUE.

[in] Dma32BitAddresses

Указывает использование 32-разрядных адресов для операций DMA.

[in] Dma64BitAddresses

Указывает использование 64-разрядных адресов для операций DMA.

[in] IgnoreCount

Указывает, следует ли игнорировать счетчик передачи контроллера DMA. Задайте значение TRUE , если контроллер DMA на этой платформе не поддерживает точный счетчик передачи и поэтому требует обходного решения.

[in] DmaWidth

Не используется. Задайте значение (DMA_WIDTH)(-1).

[in] DmaSpeed

Не используется. Задайте значение (DMA_SPEED)(-1).

[in] MaximumLength

Максимальное число байтов в буфере, который будет связан с этим каналом DMA.

[in] DmaPort

Не используется. Задайте значение 0.

Возвращаемое значение

NewMasterDmaChannel возвращает STATUS_SUCCESS, если вызов был успешным. В противном случае возвращается соответствующий код ошибки.

Комментарии

Определения параметров вызова для NewMasterDmaChannel метода аналогичны определениям для членов структуры DEVICE_DESCRIPTION с одинаковыми именами.

Укажите параметр PoolType как один из типов пулов без пахоты, определенных в перечислении POOL_TYPE. Объект канала DMA не должен находиться в постраничной памяти, так как некоторые методы в интерфейсе IDmaChannel можно вызвать из IRQL DISPATCH_LEVEL.

Параметры DmaChannel, OuterUnknown и ResourceList следуют соглашениям о подсчете ссылок для COM-объектов.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL PASSIVE_LEVEL

См. также раздел

DEVICE_DESCRIPTION

IDmaChannel

IPortWavePci

IResourceList

POOL_TYPE