Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Метод 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. Кроме того, AllocateBufferWithNotification определяет драйвер порта WaveRT, который требуется уведомление о событиях на основе DMA, и указывает количество уведомлений на цикл циклического буфера.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Доступно в операционных системах Windows Vista и более поздних версий. |
| целевая платформа | Всеобщий |
| заголовка | portcls.h |
| IRQL | Пассивный уровень. |
См. также
IMiniportWaveRTStream::AllocateAudioBuffer
IMiniportWaveRTStreamNotification