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

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

Синтаксис

NTSTATUS NewMasterDmaChannel(
  [out]          PDMACHANNEL   *DmaChannel,
  [in]           PUNKNOWN      OuterUnknown,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           ULONG         MaximumLength,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed
);

Параметры

[out] DmaChannel

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

[in] OuterUnknown

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

[in, optional] ResourceList

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

[in] MaximumLength

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

[in] Dma32BitAddresses

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

[in] Dma64BitAddresses

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

[in] DmaWidth

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

[in] DmaSpeed

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

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

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

Комментарии

Параметры MaximumLength, Dma32BitAddresses, Dma64BitAddresses, DmaWidth и DmaSpeed по смыслу аналогичны членам структуры DEVICE_DESCRIPTION с одинаковыми именами.

Устройство WaveCyclic со встроенным оборудованием DMA для шины называется master устройством. В отличие от этого, подчиненное устройство не имеет оборудования DMA и должно полагаться на системный контроллер DMA для выполнения любой необходимой передачи данных. Метод NewMasterDmaChannel создает объект канала DMA для master устройства. Чтобы создать объект канала DMA для подчиненного устройства, вызовите метод IPortWaveCyclic::NewSlaveDmaChannel . Дополнительные сведения о master и подчиненных устройствах см. в разделе IDmaChannel и IDmaChannelSlave.

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

Примечание

Корпорация Майкрософт поддерживает разнообразную и инклюзивную среду. В этой статье содержатся ссылки на терминологию, которую руководство майкрософт по стилю для общения без предубеждений распознает как исключающую. Слово или фраза используется в этой статье для обеспечения согласованности, так как они в настоящее время отображаются в программном обеспечении. При обновлении программного обеспечения для удаления языка эта статья будет обновлена до выравнивания.

Требования

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

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

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList