Freigeben über


DXGKDDI_MIRACAST_HANDLE_IO_CONTROL Rückruffunktion (dispmprt.h)

Vom Betriebssystem aufgerufen, um anzufordern, dass der Anzeige-Miniporttreiber eine synchrone E/A-Steuerungsanforderung als Reaktion auf einen Benutzermodus-Anzeigetreiberaufruf an die MiracastIoControl-Funktion verarbeitet.

Syntax

DXGKDDI_MIRACAST_HANDLE_IO_CONTROL DxgkddiMiracastHandleIoControl;

NTSTATUS DxgkddiMiracastHandleIoControl(
  [in]  PVOID DriverContext,
  [in]  PVOID MiracastContext,
  [in]  ULONG InputBufferSize,
  [in]  VOID *pInputBuffer,
  [in]  ULONG OutputBufferSize,
  [out] VOID *pOutputBuffer,
  [out] ULONG *BytesReturned
)
{...}

Parameter

[in] DriverContext

Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Die DxgkDdiAddDevice-Funktion des Display-Miniporttreibers stellt dieses Handle zuvor für das DirectX-Grafik-Kernel-Subsystem bereit.

[in] MiracastContext

Der Miracast-Gerätekontext, der vom Betriebssystem bereitgestellt wird. Dieser Kontext wurde vom Display miniport-Treiber in einem Aufruf der DxgkDdiMiracastCreateContext-Funktion bereitgestellt.

[in] InputBufferSize

Wird vom Betriebssystem als Größe des Eingabepuffers in Bytes bereitgestellt, auf den pInputBufferverweist. Dieser Wert stammt aus dem Benutzermodus MiracastIoControlInputBufferSize Parameter der Funktion.

[in] pInputBuffer

Vom Betriebssystem als Zeiger auf den Eingabepuffer bereitgestellt. Dieser Wert stammt aus dem Benutzermodus MiracastIoControlInputBufferSize Parameter der Funktion.

InputBufferSize- gibt die Größe des Puffers an.

[in] OutputBufferSize

Vom Betriebssystem als Größe des Ausgabepuffers in Bytes bereitgestellt, auf den pOutputBufferverweist.

Dieser Wert stammt aus dem Benutzermodus MiracastIoControlOutputBufferSize Parameter der Funktion.

[out] pOutputBuffer

Vom Betriebssystem als Zeiger auf den Ausgabepuffer bereitgestellt. Dieser Wert stammt aus dem Benutzermodus MiracastIoControlpOutputBuffer Parameter der Funktion.

OutBufferSize- gibt die Größe des Puffers an.

[out] BytesReturned

Wird vom Betriebssystem als Zeiger auf einen Puffer bereitgestellt, der einen ULONG-wert-type enthält, der die Anzahl der Bytes darstellt, auf die der im Puffer zurückgegebene Anzeigeminiporttreiber durch pOutputBufferverweist.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird eine der Fehlercodes zurückgegeben, die in Ntstatus.h definiert sind.

Bemerkungen

Das Betriebssystem garantiert, dass ein Aufruf von DxgkDdiMiracastIoControl- im gleichen Prozessbereich auftritt wie der Benutzermodus MiracastIoControl Anforderung aufgerufen wird.

Obwohl das Betriebssystem lediglich die Werte der Eingabe- und Ausgabepuffergrößen aus den jeweiligen Parametern von MiracastIoControlkopiert, ist der Miniporttreiber für die Überprüfung der Puffergrößen verantwortlich, bevor die Puffer verwendet werden. Außerdem sollte der Treiber Probingvorgänge innerhalb eines Try/except-Aufrufblocks ausführen, indem ProbeForRead- und/oder ProbeForWrite--Funktionen verwendet werden, um den Speicher des Benutzermodus zu überprüfen, auf den die Eingabepuffer verweisen.

Dieser E/A-Steuerungsvorgang wird synchron mit einem Aufruf des Benutzermodus MiracastIoControl-Funktion verarbeitet.

Synchronisierung

Das Betriebssystem gruppiert die DxgkDdiMiracastCreateContext, DxgkDdiMiracastDestroyContextund DxgkDdiMiracastIoControl als Miracast Klasse.

Die Threading- und Synchronisierungsebene für diese Funktion wird festgelegt, indem der Benutzermodustreiber den parameter HardwareAccess in einem Aufruf der MiracastIoControl--Funktion festlegt:

  • Wenn HardwareAccess-FALSE-ist, garantiert das Betriebssystem, dass DxgkDdiMiracastIoControl dem Synchronisierungsmodus der zweiten Ebene folgt, wie in Threading and Synchronization Second Leveldefiniert. DxgkDdiMiracastIoControl- kann aufgerufen werden, wenn andere Klassen der Ebene 0, 1 oder nicht miracast von Funktionen der Ebene 2 in einem anderen Threadkontext aufgerufen werden. Allerdings kann jeweils nur eine der Miracast-Klassenfunktionen der Ebene 2 aufgerufen werden.
  • Wenn HardwareAccess-TRUEist, folgt DxgkDdiMiracastIoControl dem Synchronisierungsmodus der dritten Ebene gemäß der Definition in Threading and Synchronization Third Level. Beachten Sie, dass durch die Spülung der GPU ein erheblicher Verarbeitungsaufwand entsteht.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8.1
mindestens unterstützte Server- Windows Server 2012 R2
Zielplattform- Desktop
Header- dispmprt.h (include Dispmprt.h)
IRQL- PASSIVE_LEVEL

Siehe auch

DxgkDdiAddDevice

DxgkDdiMiracastCreateContext

MiracastIoControl-

ProbeForRead-

ProbeForWrite