PFN_GET_NEXT_CHUNK_DATA回调函数 (netdispumdddi.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 (include Netdispumdddi.h) |