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


функция обратного вызова 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 ранее получил этот дескриптор в качестве параметра hMiracastDeviceHand le в вызове функции 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 (include Netdispumdddi.h)

См. также

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA