在指定的内存池中分配指定大小的缓冲区,以便在发送通知时使用,以允许音频模块和 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 (请参阅“备注”部分) |