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)

另请参阅

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA