Dela via


VidPN-objekt och -gränssnitt

VidPN-hanteraren använder ett VidPN-objekt för att hantera information om associationer mellan videokällor, videomål och visningslägen. Mer information finns i Introduktion till videopresentationsnätverk.

VidPN-objekt

Ett VidPN-objekt innehåller följande underobjekt.

  • Topology

  • Uppsättning källläge

  • Mållägesuppsättning

  • Övervaka källlägesuppsättning

  • Övervaka frekvensintervalluppsättning

  • Övervaka deskriptoruppsättning

  • Väg

  • Källa

  • Mål

  • Källläge

  • Målläge

  • Övervaka källläge

Följande diagram illustrerar ett VidPN-objekt och dess underobjekt.

Diagram som illustrerar ett VidPN-objekt och dess olika underobjekt, inklusive topologi, lägesuppsättningar och sökvägar.

Det föregående diagrammet visar om en viss association är en-till-en, en-till-många, många-till-en eller många-till-många. Diagrammet visar till exempel att en källa kan tillhöra mer än en sökväg, men ett mål kan bara tillhöra en sökväg.

De blå objekten i diagrammet nås via referenser och gränssnitt, och de grå objekten nås via strukturpekare. Ett gränssnitt i den här kontexten är en struktur som innehåller funktionspekare. Till exempel innehåller DXGK_VIDPNTOPOLOGY_INTERFACE-strukturen pekare till funktioner (implementerade av VidPN-chefen) som miniportdrivrutinen anropar för att inspektera och ändra ett topologiobjekt. När miniportdrivrutinen anropar någon av dessa funktioner måste den ange ett handtag till ett topologiobjekt. I följande tabell visas de referens-, gränssnitts- och pekardatatyper som används för att komma åt ett VidPN-objekt och dess underobjekt.

Objekt Åtkomstmetod och datatyp
VidPN (VidPN-gränssnitt) Nås via handtag och gränssnitt. D3DKMDT_HVIDPN, DXGK_VIDPN_INTERFACE
Topologi (VidPN-topologigränssnitt) Nås via handtag och gränssnitt. D3DKMDT_HVIDPNTOPOLOGY, DXGK_VIDPNTOPOLOGY_INTERFACE
Källlägesuppsättning (VidPN-källlägesuppsättningsgränssnitt) Nås via handtag och gränssnitt. D3DKMDT_HVIDPNSOURCEMODESET, DXGK_VIDPNSOURCEMODESET_INTERFACE
Mållägesuppsättning (VidPN-mållägesuppsättningsgränssnitt) Nås via handtag och gränssnitt. D3DKMDT_HVIDPNTARGETMODESET, DXGK_VIDPNTARGETMODESET_INTERFACE
Övervaka källlägesuppsättning Nås via handtag och gränssnitt. D3DKMDT_HMONITORSOURCEMODESET, DXGK_MONITORSOURCEMODESET_INTERFACE
Väg Nås via strukturpekaren. D3DKMDT_VIDPN_PRESENT_PATH
Källa Nås via strukturpekaren. D3DKMDT_VIDEO_PRESENT_SOURCE
Mål Nås via strukturpekaren. D3DKMDT_VIDEO_PRESENT_TARGET
Källläge Nås via strukturpekaren. D3DKMDT_VIDPN_SOURCE_MODE
Målläge Nås via strukturpekaren. D3DKMDT_VIDPN_TARGET_MODE
Övervaka källläge Nås via strukturpekaren. D3DKMDT_MONITOR_SOURCE_MODE
Övervaka frekvensintervalluppsättning Nås via strukturpekaren. [DXGK_MONITORFREQUENCYRANGESET_INTERFACE
Övervaka deskriptoruppsättning Nås via strukturpekaren. [DXGK_MONITORDESCRIPTORSET_INTERFACE

VidPN Manager

VidPN managern, som är en av komponenterna i DirectX-grafikkärnundersystemet, samarbetar med bildskärmsminiportdrivrutinen för att skapa och underhålla VidPNs. Följande steg beskriver hur miniportdrivrutinen för visning hämtar ett handtag och ett gränssnitt till ett VidPN-objekt.

  1. Vid initieringen anropar DirectX-grafikkärnans undersystem miniportdrivrutinens DxgkDdiStartDevice-funktion. Det anropet ger display miniport-drivrutinen en DXGKRNL_INTERFACE struktur, som innehåller pekare till funktioner som implementeras av DirectX-grafikkärnundersystemet. En av dessa funktioner är DxgkCbQueryVidPnInterface.

  2. VidPN-hanteraren behöver vid någon tidpunkt hjälp från miniportdrivrutinen för bildskärmen, så den ger miniportdrivrutinen för bildskärmen ett handtag till ett VidPN-objekt genom att anropa någon av följande funktioner:

  3. Bildskärmens miniportdrivrutin skickar handtaget som hämtas i steg 2 till DxgkCbQueryVidPnInterface, som returnerar en pekare till en DXGK_VIDPN_INTERFACE struktur.

När miniportdrivrutinen för bildskärmen har ett handtag och ett gränssnitt till ett VidPN-objekt kan den hämta handtag och gränssnitt (efter behov) till de primära underobjekten: topologi, källlägesuppsättning, mållägesuppsättning och övervakning av källlägesuppsättning. Till exempel kan miniportdrivrutinen anropa pfnGetTopology (en av funktionerna i VidPN-gränssnittet) för att hämta ett handtag till ett VidPN-topologiobjekt och en pekare till en DXGK_VIDPNTOPOLOGY_INTERFACE struktur.

Följande funktioner (i VidPN-gränssnittet) tillhandahåller referenser och gränssnitt till de primära underobjekten för ett VidPN-objekt.

Observera att två av funktionerna i föregående lista har motsvarande funktioner som frigör VidPN-underobjekt.

När miniportdrivrutinen för bildskärmen har fått ett handtag och ett gränssnitt till ett av de primära Underobjekten i VidPNs kan den anropa gränssnittsfunktionerna för att hämta beskrivningar av objekt som är relaterade till underobjektet. Till exempel, givet ett handtag och ett gränssnitt för ett topologiobjekt, kan miniportdrivrutinen för visning utföra följande steg för att hämta beskrivningar av alla vägar i topologin.

  1. VidPN-topologigränssnitt

    Anropa funktionen pfnAcquireFirstPathInfo i VidPN-topologigränssnittet för att hämta en pekare till en D3DKMDT_VIDPN_PRESENT_PATH struktur som beskriver den första sökvägen i topologin.

  2. VidPN-topologigränssnitt

    Anropa funktionen pfnAcquireNextPathInfo upprepade gånger för att hämta pekare till D3DKMDT_VIDPN_PRESENT_PATH strukturer som beskriver de återstående sökvägarna i topologin.

På samma sätt kan miniportdrivrutinen hämta beskrivningar av lägen i en lägesuppsättning genom att anropa funktionerna pfnAcquireFirstModeInfo och pfnAcquireNextModeInfo i något av följande lägesuppsättningsgränssnitt.

Observera att DXGK_VIDPNSOURCEMODESET_INTERFACE-gränssnittet inte har någon funktion för att ta bort ett läge från en källlägesuppsättning. När miniportdrivrutinen för bildskärmen behöver uppdatera en källlägesuppsättning ändras inte en befintlig lägesuppsättning genom att lägga till och ta bort lägen. I stället skapas en ny lägesuppsättning som ersätter den gamla lägesuppsättningen. Ett exempel på en funktion som måste uppdatera lägesuppsättningar är display miniport-drivrutinens DxgkDdiEnumVidPnCofuncModality-funktion . Stegen för att uppdatera en källlägesuppsättning är följande:

  1. Anropa pfnCreateNewModeInfo för DXGK_VIDPNSOURCEMODESET_INTERFACE-gränssnittet för att få en pekare till en D3DKMDT_VIDPN_SOURCE_MODE struktur (allokerad av VidPN-chefen).

    Anropa pfnAddMode upprepade gånger för att lägga till lägen i källlägesuppsättningen.

  2. Anropa funktionen pfnAssignSourceModeSet för DXGK_VIDPN_INTERFACE för att tilldela det nya läget inställt på en viss videokälla. Den nya källlägesuppsättningen ersätter den källlägesuppsättning som för närvarande är tilldelad till den källan.

Uppdatering av en mållägesuppsättning liknar uppdatering av en uppsättning källlägen. Gränssnittet DXGK_VIDPNTARGETMODESET_INTERFACE har följande funktioner:

Det finns inget gränssnitt (uppsättning funktioner) för att hämta källan och målet som tillhör en viss sökväg. Miniportdrivrutinen för visning kan avgöra vilken källa och vilket mål som tillhör en viss sökväg genom att granska VidPnSourceId - och VidPnTargetId-medlemmarna i den D3DKMDT_VIDPN_PRESENT_PATH struktur som representerar sökvägen.

Se även

Avgöra om ett VidPN stöds på ett bildskärmskort

Uppräkning av cofunktionella VidPN-käll- och mållägen

Terminologi för Video Present Network

Hämta ytterligare övervakningsmållägen