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


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

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

Синтаксис

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 для шины называется главным устройством. В отличие от этого, подчиненные устройства не имеют оборудования DMA и должны полагаться на системный контроллер DMA для выполнения любых необходимых передач данных. Метод NewMasterDmaChannel создает объект канала DMA для главного устройства. Чтобы создать объект канала DMA для подчиненного устройства, вызовите вместо него метод IPortWaveCyclic::NewSlaveDmaChannel . Дополнительные сведения о главных и подчиненных устройствах см. в разделе IDmaChannel и IDmaChannelSlave.

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

Примечание.

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

Требования

Требование Ценность
целевая платформа универсальный
Заголовок portcls.h (include Portcls.h)
IRQL пассивный уровень

См. также

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList