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 (请参阅备注部分) |