Метод 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 (include Portcls.h) |
библиотеки | Portcls.lib |
IRQL | <= DISPATCH_LEVEL (см. раздел "Примечания") |