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)
Library Portcls.lib
IRQL <= DISPATCH_LEVEL (请参阅“备注”部分)

另请参阅

IPortClsNotifications