Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограмма FreeContiguousDmaBuffer освобождает буфер DMA и список дескрипторов буфера DMA (BDL), выделенный вызовом AllocateContiguousDmaBuffer.
Тип указателя функции для подпрограммы FreeContiguousDmaBuffer определяется следующим образом.
Синтаксис
PFREE_CONTIGUOUS_DMA_BUFFER PfreeContiguousDmaBuffer;
NTSTATUS PfreeContiguousDmaBuffer(
[in] PVOID _context,
[in] HANDLE Handle
)
{...}
Параметры
[in] _context
Указывает значение контекста из контекста члена структуры HDAUDIO_BUS_INTERFACE_BDL.
[in] Handle
Обработка идентификации подсистемы DMA. Это значение дескриптора было получено из предыдущего вызова AllocateCaptureDmaEngine или AllocateRenderDmaEngine.
Возвращаемое значение
FreeContiguousDmaBuffer возвращает STATUS_SUCCESS, если вызов выполнен успешно. В противном случае подпрограмма возвращает соответствующий код ошибки. В следующей таблице показаны некоторые возможные коды состояния возврата.
| Код возврата | Описание |
|---|---|
|
Указывает, что вызывающий объект выполняется в IRQL, который слишком высок. |
|
Указывает, что значение параметра дескриптора недопустимо. |
|
Указывает, что поток не находится в состоянии сброса или что буфер в настоящее время не выделяется для подсистемы DMA. |
Замечания
Подпрограмма FreeContiguousDmaBuffer используется вместе с подпрограммами SetupDmaEngineWithBdl и AllocateContiguousDmaBuffer . Эти три подпрограммы доступны только в HDAUDIO_BUS_INTERFACE_BDL версии HD Audio DDI. Этот DDI не включает подпрограммы AllocateDmaBuffer и FreeDmaBuffer , которые никогда не используются в сочетании с AllocateContiguousDmaBuffer, SetupDmaEngineWithBdl и FreeContiguousDmaBuffer. В отличие от SetupDmaEngineWithBdl, который настраивает подсистему DMA для использования ранее выделенного буфера DMA, AllocatedDmaBuffer выделяет буфер DMA и настраивает подсистему DMA для использования буфера. Дополнительные сведения см. в разделе Различия между двумя версиями DDI.
Подпрограмма завершается ошибкой и возвращает код ошибки STATUS_INVALID_DEVICE_REQUEST в любом из следующих случаев:
-
Клиент вызывает
FreeContiguousDmaBuffer, если буфер в настоящее время не выделяется для подсистемы DMA. - Поток находится в состоянии, отличном от сброса.
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Рабочий стол |
| Заголовок | hdaudio.h (include Hdaudio.h) |
| IRQL | пассивный уровень |