Метод IMiniportWaveRTStreamNotification::AllocateBufferWithNotification (portcls.h)
Метод AllocateAudioBufferWithNotification
выделяет циклический буфер для звуковых данных, если требуется реализовать уведомления о событиях на основе DMA. Если вы не хотите получать уведомления о событиях, используйте IMiniportWaveRTStream::AllocateAudioBuffer.
Синтаксис
NTSTATUS AllocateBufferWithNotification(
[in] ULONG NotificationCount,
[in] ULONG RequestedSize,
[out] PMDL *AudioBufferMdl,
[out] ULONG *ActualSize,
[out] ULONG *OffsetFromFirstPage,
[out] MEMORY_CACHING_TYPE *CacheType
);
Параметры
[in] NotificationCount
Указывает количество уведомлений, которое требуется для каждого цикла буфера. Допустимые значения: 1 или 2, где 1 обозначает одно уведомление в конце циклического буфера, а 2 — два уведомления на цикл буфера: одно в середине буфера и одно в конце.
[in] RequestedSize
Указывает запрошенный размер (в байтах) звукового буфера.
[out] AudioBufferMdl
Выходной указатель для списка дескрипторов памяти (MDL), описывающего звуковой буфер. Этот параметр указывает на переменную указателя, выделенную вызывающим объектом, в которую метод записывает указатель на MDL.
[out] ActualSize
Указатель вывода для фактического размера выделенного буфера (в байтах). Этот параметр указывает на переменную ULONG, в которую метод записывает значение размера.
[out] OffsetFromFirstPage
Выходной указатель смещения (в байтах) буфера с начала первой страницы MDL. Этот параметр указывает на выделенную вызывающим объектом переменную ULONG, в которую метод записывает значение смещения.
[out] CacheType
Указывает тип кэширования, запрашиваемого клиентом для звукового буфера. Этот параметр является значением перечисления MEMORY_CACHING_TYPE .
Возвращаемое значение
AllocateBufferWithNotification
возвращает STATUS_SUCCESS, если вызов был выполнен успешно. В противном случае метод возвращает соответствующий код состояния ошибки. В следующей таблице показаны некоторые из возможных кодов состояния ошибок.
Код возврата | Описание |
---|---|
|
Драйвер не поддерживает указанное сочетание атрибутов буфера. |
|
Недостаточно доступной памяти для выделения буфера. |
|
Устройство не готово. |
Комментарии
AllocateBufferWithNotification
метод для выделения циклического буфера, который драйвер порта впоследствии сможет сопоставить с виртуальным адресным пространством клиента. AllocateBufferWithNotification
работает аналогично IMiniportWaveRTStream::AllocateAudioBuffer. Кроме того, определяет драйвер порта WaveRT, AllocateBufferWithNotification
что требуется уведомление о событиях на основе DMA, и указывает, сколько уведомлений требуется для цикла циклического буфера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Операционных системах Windows Vista и более поздних версий. |
Целевая платформа | Универсальное |
Верхняя часть | portcls.h |
IRQL | Пассивный уровень. |
См. также раздел
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification