PFN_GET_NEXT_CHUNK_DATA回调函数 (netdispumddi.h)
提供有关在DXGK_INTERRUPT_TYPE中断类型为DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE时报告给 Microsoft DirectX 图形内核子系统的下一个 Miracast 编码区块的信息。此函数的数据类型PFN_GET_NEXT_CHUNK_DATA。
语法
PFN_GET_NEXT_CHUNK_DATA PfnGetNextChunkData;
NTSTATUS PfnGetNextChunkData(
[in] HANDLE hMiracastDeviceHandle,
[in] UINT TimeoutInMilliseconds,
[in] UINT AdditionalWaitEventCount,
[in, optional] HANDLE *pAdditionalWaitEvents,
[in, out] UINT *pChunkDataBufferSize,
[out] MIRACAST_CHUNK_DATA *pChunkDataBuffer,
[out] UINT *pOutstandingChunksToProcess
)
{...}
参数
[in] hMiracastDeviceHandle
表示 Miracast 设备的句柄。 Miracast 用户模式驱动程序之前在调用 CreateMiracastContext 函数时获取此句柄作为 hMiracastDeviceHandle 参数。
[in] TimeoutInMilliseconds
Miracast 用户模式驱动程序提供的超时间隔值(以毫秒为单位)。
如果此值为 INFINITE,则操作系统会阻止调用 GetNextChunkData ,直到区块变得可用。
如果此值为零且区块未就绪,则操作系统不会阻止对 GetNextChunkData 的调用。
[in] AdditionalWaitEventCount
pAdditionalWaitEvents 参数中提供的其他事件数。
最多可以提供 4 个等待事件。
[in, optional] pAdditionalWaitEvents
指向 GetNextChunkData 在等待新编码区块时将等待的事件数组的可选指针。
[in, out] pChunkDataBufferSize
指向包含 pChunkDataBuffer 缓冲区大小(以字节为单位)的变量的指针。
调用 GetNextChunkData 时,此参数包含 pChunkDataBuffer 的大小。
当 GetNextChunkData 返回成功代码时,此参数包含 pChunkDataBuffer 中返回的实际编码区块数据的大小。
[out] pChunkDataBuffer
指向 MIRACAST_CHUNK_DATA类型的 缓冲区的指针,操作系统提供该指针用于存储有关下一个编码区块的信息。 仅当对 GetNextChunkData 的调用成功时,才提供此参数。
[out] pOutstandingChunksToProcess
指向变量的指针,该变量包含此调用返回时驱动程序可用的未完成编码区块数。 仅当对 GetNextChunkData 的调用成功时,才提供此参数。
请注意,由于区块由 GPU 异步完成,因此此参数仅指示未完成的区块数。
返回值
如果成功返回有关编码区块的信息,则返回 STATUS_SUCCESS 状态代码,并且 *pChunkDataBufferSize 的值非零。
可以返回以下附加状态代码:
注解
此函数是可选的。 用户模式显示驱动程序仅当显示微型端口驱动程序响应 GPU 中断时,GPU 通过传入MIRACAST_CHUNK_DATA中的数据完成区块编码时,才应调用 它。该中断时间的 PrivateDriverData 成员。
用户模式显示驱动程序可以使用 MIRACAST_CHUNK_DATA 结构和 MIRACAST_CHUNK_DATA的大小。PrivateDriverData 成员,用于计算区块的大小以及如何在返回的缓冲区中从区块移动到区块。
在调用此函数时,可以容纳的任意数量的可用数据包将按顺序放置在提供的缓冲区中。 此代码片段演示如何计算每个数据包的大小:
ChunkSize == FIELD_OFFSET
(D3DKMT_MIRACAST_CHUNK_DATA, PrivateDriverData) \
+ Chunk->ChunkData.PrivateDriverDataSize;
线程安全性
一次只能有一个线程调用此函数。 否则,哪个调用会收到区块信息,哪些调用将失败,这是不可预知的。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 |
最低受支持的服务器 | Windows Server 2012 R2 |
目标平台 | 桌面 |
标头 | netdispumdddi.h (包括 Netdispumddi.h) |