Поделиться через


Метод 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 (см. раздел "Примечания")

См. также раздел

IPortClsNotifications