Метод IPortClsNotifications::AllocNotificationBuffer (portcls.h)
Выделяет буфер указанного размера в указанном пуле памяти для использования при отправке уведомлений, чтобы обеспечить обмен данными между звуковыми модулями и приложениями UWP.
Дополнительные сведения о звуковых модулях см. в разделе Реализация обнаружения аудиомодулем.
Синтаксис
NTSTATUS AllocNotificationBuffer(
[in] POOL_TYPE PoolType,
[in] USHORT NumberOfBytes,
[out] PPCNOTIFICATION_BUFFER *NotificationBuffer
);
Параметры
[in] PoolType
Указывает тип пула памяти, из которого будет выделен объект (см. POOL_TYPE). Рекомендуемые значения: NonPagedPoolNx или PagedPool. Выбор типа пула памяти также зависит от уровня IRQL. При выполнении в DISPATCH_LEVEL память должна быть не страничной.
[in] NumberOfBytes
Число выделенных байтов.
[out] NotificationBuffer
Указатель на PCNOTIFICATION_BUFFER который метод записывает адрес выделенного уведомления.
Возвращаемое значение
STATUS_SUCCESS — драйверу удалось выделить буфер уведомлений.
STATUS_INVALID_PARAMETER — драйвер возвращает эту ошибку, если считает какой-либо другой параметр недопустимым, за исключением конкретных случаев для других экземпляров состояния ошибки.
Могут быть возвращены дополнительные стандартные коды состояния. Например, если невозможно выделить необходимый буфер, возвращается STATUS_INSUFFICIENT_RESOURCES.
Комментарии
Вызывающие функции AllocNotificationBuffer должны выполняться в IRQL <= DISPATCH_LEVEL. Если модуль записи драйверов вызывает эту подпрограмму по адресу IRQL = DISPATCH_LEVEL, notificationStructure должна быть выделена из непагрегированной памяти.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 10 версии 1703 и более поздних версиях Windows. |
Целевая платформа | Универсальное |
Верхняя часть | portcls.h (включая Portcls.h) |
Библиотека | Portcls.lib |
IRQL | <= DISPATCH_LEVEL (см. раздел "Примечания") |