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 에 대한 호출을 차단합니다.
이 값이 0이고 청크가 준비되지 않은 경우 운영 체제는 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 값은 0이 아닙니다.
이러한 추가 상태 코드를 반환할 수 있습니다.
설명
이 함수는 선택 사항입니다. 사용자 모드 디스플레이 드라이버는 GPU가 MIRACAST_CHUNK_DATA 데이터를 전달하여 청크 인코딩을 완료할 때 디스플레이 미니포트 드라이버가 GPU의 인터럽트에서 응답하는 경우에만 호출해야 합니다. 해당 인터럽트 시간에 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(Netdispumddddi.h 포함) |