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


Метод IDmaChannel::AllocateBuffer (portcls.h)

Метод AllocateBuffer выделяет общий буфер, к которому могут обращаться драйвер порта и оборудование DMA.

Синтаксис

NTSTATUS AllocateBuffer(
  ULONG             BufferSize,
  PPHYSICAL_ADDRESS PhysicalAddressConstraint
);

Параметры

BufferSize

Задает размер выделенного буфера в байтах.

PhysicalAddressConstraint

Задает необязательное ограничение для физического адреса буфера. Если этот параметр не равен NULL, то только биты, заданные в адресе ограничения, будут отличаться от начала до конца буфера. Например, чтобы запросить буфер, который не пересекает границу в 64 килобайта, укажите физическое ограничение адреса 0x000000000000FFFF.

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

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

Комментарии

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

Требования

Требование Значение
Заголовок portcls.h
IRQL PASSIVE_LEVEL

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

IDmaChannel