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 hMiracastDeviceHand le en una llamada a la función createMiracastContext .

[in] TimeoutInMilliseconds

Valor del intervalo de tiempo de espera, en milisegundos, proporcionado por el controlador del 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 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 no es cero.

Estos códigos de estado adicionales se pueden devolver:

Observaciones

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 visualización 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 del fragmento al fragmento en el búfer devuelto.

En una llamada a esta función, tantos paquetes disponibles como se puedan ajustar 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 de subprocesos

Solo un subproceso debe llamar a esta función a la vez. De lo contrario, es impredecible qué llamada recibiría información de fragmento y qué llamada produciría un error.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 8.1
servidor mínimo admitido Windows Server 2012 R2
de la plataforma de destino de Escritorio
encabezado de netdispumdddi.h (include Netdispumdddi.h)

Consulte también

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA