Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
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.
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.
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:
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.
-
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.
-
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:
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.
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:
VidPN-mållägesuppsättningsgränssnitt
En pfnCreateNewModeInfo-funktion för att skapa en ny mållägesuppsättning och en pfnAddMode-funktion för att lägga till lägen i uppsättningen.
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