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)

另请参阅

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA