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