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


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

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

Синтаксис

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 (include Portcls.h)
IRQL PASSIVE_LEVEL

См. также

DEVICE_DESCRIPTION

IDmaChannel

IPortWavePci

IResourceList

POOL_TYPE