Compartir a través de


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)

Consulte también

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA