PFN_GET_NEXT_CHUNK_DATA función de devolución de llamada (netdispumdddi.h)
Proporciona información sobre el siguiente fragmento de codificación de Miracast que se informó al subsistema del kernel de gráficos de Microsoft DirectX cuando el tipo de interrupción de DXGK_INTERRUPT_TYPE es DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE. El tipo de datos de esta función es PFN_GET_NEXT_CHUNK_DATA.
Sintaxis
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
)
{...}
Parámetros
[in] hMiracastDeviceHandle
Identificador que representa un dispositivo Miracast. El controlador del modo de usuario de Miracast obtuvo previamente este identificador como el parámetro hMiracastDeviceHandle en una llamada a la función CreateMiracastContext .
[in] TimeoutInMilliseconds
Valor del intervalo de tiempo de espera, en milisegundos, proporcionado por el controlador en modo de usuario de Miracast.
Si este valor es INFINITE, el sistema operativo bloquea las llamadas a GetNextChunkData hasta que un fragmento esté disponible.
Si este valor es cero y un fragmento no está listo, el sistema operativo no bloqueará una llamada a GetNextChunkData.
[in] AdditionalWaitEventCount
Número de eventos adicionales que se proporcionan en el parámetro pAdditionalWaitEvents .
Se puede proporcionar un máximo de 4 eventos de espera.
[in, optional] pAdditionalWaitEvents
Puntero opcional a una matriz de eventos que GetNextChunkData esperará mientras espera un nuevo fragmento de codificación.
[in, out] pChunkDataBufferSize
Puntero a una variable que contiene el tamaño, en bytes, del búfer pChunkDataBuffer .
Cuando se llama a GetNextChunkData , este parámetro contiene el tamaño de pChunkDataBuffer.
Cuando GetNextChunkData devuelve un código correcto, este parámetro contiene el tamaño de los datos de fragmentos de codificación reales devueltos en pChunkDataBuffer.
[out] pChunkDataBuffer
Puntero a un búfer de tipo MIRACAST_CHUNK_DATA que proporciona el sistema operativo para almacenar información sobre el siguiente fragmento de codificación. Este parámetro solo se proporciona si la llamada a GetNextChunkData se realiza correctamente.
[out] pOutstandingChunksToProcess
Puntero a una variable que contiene el número de fragmentos de codificación pendientes que están disponibles para el controlador en el momento en que se devuelve esta llamada. Este parámetro solo se proporciona si la llamada a GetNextChunkData se realiza correctamente.
Tenga en cuenta que, a medida que la GPU completa los fragmentos de forma asincrónica, este parámetro solo proporciona una indicación del número de fragmentos pendientes.
Valor devuelto
Si la información de un fragmento de codificación se devolvió correctamente, se devuelve el código de estado STATUS_SUCCESS y el valor de *pChunkDataBufferSize es distinto de cero.
Estos códigos de estado adicionales se pueden devolver:
Comentarios
Esta función es opcional. El controlador de pantalla en modo de usuario solo debe llamarlo si el controlador de minipuerto de pantalla responde a interrupciones de la GPU cuando la GPU completa la codificación de un fragmento pasando datos en el MIRACAST_CHUNK_DATA. Miembro PrivateDriverData en ese momento de interrupción.
El controlador de pantalla en modo de usuario puede usar los tamaños de la estructura de MIRACAST_CHUNK_DATA y el MIRACAST_CHUNK_DATA. Miembro PrivateDriverData para calcular el tamaño de un fragmento y, por tanto, cómo pasar de fragmento a fragmento en el búfer devuelto.
En una llamada a esta función, tantos paquetes disponibles como se ajusten se colocarán secuencialmente en el búfer proporcionado. Este fragmento de código muestra cómo calcular el tamaño de cada paquete:
ChunkSize == FIELD_OFFSET
(D3DKMT_MIRACAST_CHUNK_DATA, PrivateDriverData) \
+ Chunk->ChunkData.PrivateDriverDataSize;
Seguridad para subprocesos
Solo un subproceso debe llamar a esta función a la vez. De lo contrario, es imprevisible qué llamada recibiría información de fragmento y qué llamada produciría un error.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8.1 |
Servidor mínimo compatible | Windows Server 2012 R2 |
Plataforma de destino | Escritorio |
Encabezado | netdispumdddi.h (include Netdispumdddi.h) |