Поделиться через


функция обратного вызова PFN_GET_NEXT_CHUNK_DATA (netdispumdddi.h)

Предоставляет сведения о следующем блоке кодирования Miracast, который был сообщен подсистеме ядра графики Microsoft DirectX, когда тип прерывания DXGK_INTERRUPT_TYPEDXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE. Тип данных этой функции — 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 ранее получил этот дескриптор в качестве параметра hMiracastDeviceHandle при вызове функции CreateMiracastContext .

[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 (включая Netdispumdddi.h)

См. также раздел

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA