PFN_GET_NEXT_CHUNK_DATA Rückruffunktion (netdispumdddi.h)

Stellt Informationen zum nächsten Miracast-Codierungsabschnitt bereit, der an das Microsoft DirectX-Grafikkernsubsystem gemeldet wurde, wenn der DXGK_INTERRUPT_TYPE Interrupttyp DXGK_INTERRUPT_MICACAST_CHUNK_PROCESSING_COMPLETE ist. Der Datentyp dieser Funktion ist PFN_GET_NEXT_CHUNK_DATA.

Syntax

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
)
{...}

Parameter

[in] hMiracastDeviceHandle

Ein Handle, das ein Miracast-Gerät darstellt. Der Miracast-Benutzermodustreiber hat dieses Handle zuvor als hMiracastDeviceHandle-Parameter in einem Aufruf der CreateMiracastContext-Funktion abgerufen.

[in] TimeoutInMilliseconds

Der Vom Miracast-Benutzermodustreiber bereitgestellte Timeoutintervallwert in Millisekunden.

Wenn dieser Wert INFINITE ist, blockiert das Betriebssystem Aufrufe von GetNextChunkData , bis ein Block verfügbar ist.

Wenn dieser Wert 0 ist und ein Block nicht bereit ist, blockiert das Betriebssystem keinen Aufruf von GetNextChunkData.

[in] AdditionalWaitEventCount

Die Anzahl der zusätzlichen Ereignisse, die im pAdditionalWaitEvents-Parameter angegeben werden.

Es können maximal 4 Warteereignisse angegeben werden.

[in, optional] pAdditionalWaitEvents

Ein optionaler Zeiger auf ein Array von Ereignissen, auf das GetNextChunkData wartet, während auf einen neuen Codierungsabschnitt gewartet wird.

[in, out] pChunkDataBufferSize

Ein Zeiger auf eine Variable, die die Größe des pChunkDataBuffer-Puffers in Bytes enthält.

Wenn GetNextChunkData aufgerufen wird, enthält dieser Parameter die Größe von pChunkDataBuffer.

Wenn GetNextChunkData einen Erfolgscode zurückgibt, enthält dieser Parameter die Größe der tatsächlichen Codierungsblöcke, die in pChunkDataBuffer zurückgegeben werden.

[out] pChunkDataBuffer

Ein Zeiger auf einen Puffer vom Typ MIRACAST_CHUNK_DATA , den das Betriebssystem zum Speichern von Informationen über den nächsten Codierungsabschnitt bereitstellt. Dieser Parameter wird nur bereitgestellt, wenn der Aufruf von GetNextChunkData erfolgreich ist.

[out] pOutstandingChunksToProcess

Ein Zeiger auf eine Variable, die die Anzahl der ausstehenden Codierungsblöcke enthält, die für den Treiber zum Zeitpunkt der Rückgabe dieses Aufrufs verfügbar sind. Dieser Parameter wird nur bereitgestellt, wenn der Aufruf von GetNextChunkData erfolgreich ist.

Beachten Sie, dass dieser Parameter nur einen Hinweis auf die Anzahl der ausstehenden Blöcke gibt, da Blöcke asynchron von der GPU abgeschlossen werden.

Rückgabewert

Wenn Informationen zu einem Codierungsblock erfolgreich zurückgegeben wurden, wird der STATUS_SUCCESS status Code zurückgegeben, und der Wert von *pChunkDataBufferSize ist ungleich 0.

Diese zusätzlichen status-Codes können zurückgegeben werden:

Hinweise

Diese Funktion ist optional. Der Anzeigetreiber für den Benutzermodus sollte ihn nur aufrufen, wenn der Anzeigeminiporttreiber auf Unterbrechungen der GPU reagiert, wenn die GPU die Codierung eines Blöckes abgeschlossen hat, indem Daten im MIRACAST_CHUNK_DATA übergeben werden. PrivateDriverData-Mitglied zu diesem Unterbrechungszeitpunkt.

Der Benutzermodusanzeigetreiber kann die Größen der MIRACAST_CHUNK_DATA-Struktur und der MIRACAST_CHUNK_DATA verwenden. PrivateDriverData-Member , um die Größe eines Blöckes zu berechnen und daher im zurückgegebenen Puffer von "Chunk" zu "Chunk" zu wechseln.

Bei einem Aufruf dieser Funktion werden so viele verfügbare Pakete wie möglich sequenziell im bereitgestellten Puffer platziert. In diesem Codeausschnitt wird veranschaulicht, wie Die Größe der einzelnen Pakete berechnet wird:

ChunkSize == FIELD_OFFSET
    (D3DKMT_MIRACAST_CHUNK_DATA, PrivateDriverData) \
    + Chunk->ChunkData.PrivateDriverDataSize;

Threadsicherheit

Nur ein Thread sollte diese Funktion gleichzeitig aufrufen. Andernfalls ist es nicht vorhersehbar, welcher Anruf Blockinformationen erhält und welcher Anruf fehlschlägt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8.1
Unterstützte Mindestversion (Server) Windows Server 2012 R2
Zielplattform Desktop
Kopfzeile netdispumddddi.h (include Netdispumdddi.h)

Weitere Informationen

CreateMiracastContext

DXGK_INTERRUPT_TYPE

MIRACAST_CHUNK_DATA