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) |