Freigeben über


DXGKCB_INDICATE_CHILD_STATUS Rückruffunktion (dispmprt.h)

Die DxgkCbIndicateChildStatus-Funktion zeichnet die aktuelle status eines angegebenen untergeordneten Geräts einer Grafikkarte auf.

Syntax

DXGKCB_INDICATE_CHILD_STATUS DxgkcbIndicateChildStatus;

NTSTATUS DxgkcbIndicateChildStatus(
  [in] HANDLE DeviceHandle,
  [in] PDXGK_CHILD_STATUS ChildStatus
)
{...}

Parameter

[in] DeviceHandle

Ein Handle, das eine Grafikkarte darstellt. Der Anzeige-Miniporttreiber hat dieses Handle zuvor im DeviceHandle-Member der DXGKRNL_INTERFACE-Struktur abgerufen, die an DxgkDdiStartDevice übergeben wurde.

[in] ChildStatus

Ein Zeiger auf eine DXGK_CHILD_STATUS Struktur, die das untergeordnete Gerät identifiziert und die aktuelle status des untergeordneten Geräts beschreibt.

Rückgabewert

DxgkCbIndicateChildStatus gibt bei Erfolg STATUS_SUCCESS zurück. Andernfalls wird einer der in Ntstatus.h definierten Fehlercodes zurückgegeben.

Hinweise

Der DPC des Anzeige-Miniporttreibers für ISR ruft DxgkCbIndicateChildStatus auf, wenn der Grafikkarte aus einem der folgenden Gründe einen Interrupt generiert:

  • Ein externes Gerät (in der Regel ein Monitor) wurde mit einem der untergeordneten Geräte der Grafikkarte verbunden, das über den HPD-Erkennungswert HpdAwarenessInterruptible verfügt. In diesem Fall legt der Anzeige-Miniporttreiber ChildStatus->Type auf StatusConnection und ChildStatus fest.HotPlug. MitTRUE verbunden.
  • Ein externes Gerät (in der Regel ein Monitor) wurde von einem der untergeordneten Geräte der Grafikkarte getrennt, das den HPD-Erkennungswert HpdAwarenessInterruptible aufweist. In diesem Fall legt der Anzeige-Miniporttreiber ChildStatus->Type auf StatusConnection und ChildStatus fest.HotPlug. MitFALSE verbunden.
  • Das Anzeigegerät, das mit einem seiner untergeordneten Geräte verbunden ist (das den Monitorausrichtungserkennungswert D3DKMDT_MOA_INTERRUPTIBLE hat), wurde gedreht. In diesem Fall legt der Anzeige-Miniporttreiber ChildStatus->Type auf StatusRotation und ChildStatus fest.Drehung. Winkel zum Drehwinkel.
Die DxgkCbIndicateChildStatus-Funktion des Anzeigeminiporttreibers ruft dxgkCbIndicateChildStatus in den folgenden Situationen auf:
  • Der Deckel auf einem tragbaren Computer wird geöffnet. In diesem Fall legt der Anzeige-Miniporttreiber ChildStatus->Type auf StatusConnection und ChildStatus fest.HotPlug. MitTRUE verbunden.
  • Der Deckel auf einem tragbaren Computer wird geschlossen. In diesem Fall legt der Anzeige-Miniporttreiber ChildStatus->Type auf StatusConnection und ChildStatus fest.HotPlug. MitFALSE verbunden.

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie die aktuelle status eines untergeordneten Geräts erfasst wird.

NTSTATUS
AtiSimulateMonitor(HW_DEVICE_EXTENSION *pHwDeviceExtension, PR2_SIMULATE_MONITOR i_pEscape)
{
    NTSTATUS Status;
    PVOID MonitorDescriptor = NULL;
    DXGK_CHILD_STATUS     ChildStatus;
    ChildStatus.ChildUid    =  pHwDeviceExtension->ulNumberDisplays | HW_ID_DISPLAY_CHILD;
    ChildStatus.Type    = StatusConnection;

    if(i_pEscape->Data == NULL) {
        // Remove a simulated monitor
        if(pHwDeviceExtension->pvSimulatedMonitorDescriptor != NULL) {
            ExFreePoolWithTag(pHwDeviceExtension->pvSimulatedMonitorDescriptor, ATI_TAG);
            pHwDeviceExtension->pvSimulatedMonitorDescriptor = NULL;
            pHwDeviceExtension->ulSimulatedMonitorDescriptorLength = 0;
           pHwDeviceExtension->ulRetryCount = 0;
           pHwDeviceExtension->bReportDescriptor = FALSE;

            ChildStatus.HotPlug.Connected = FALSE;
            Status = DxgkCbIndicateChildStatus(pHwDeviceExtension->DeviceHandle, &ChildStatus);
        }
        else {
            // No simulated monitor is present so the request to remove one is invalid
            return STATUS_INVALID_PARAMETER;
        }
    }
    else {
        //Add a simulated monitor
    }
    return Status;
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL <=DISPATCH_LEVEL

Weitere Informationen

DxgkDdiQueryChildRelations

DxgkDdiQueryChildStatus