Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Het model voor indirect beeldschermstuurprogramma (IDD) biedt een eenvoudig stuurprogrammamodel in de gebruikersmodus ter ondersteuning van monitors die niet zijn verbonden met traditionele GPU-beeldschermuitvoer. Enkele typische scenario's waarbij een IDD is vereist, zijn onder andere:
- De uitvoer van de weergave via een netwerk streamen naar een externe client (extern beeldscherm).
- Virtuele monitors maken voor toepassingen zoals virtuele bureaubladomgevingen (virtuele schermen).
- Sluit een dongle via USB aan op een pc waaraan een gewone monitor (VGA, DVI, HDMI, DP, enzovoort) is aangesloten.
IDD-implementatie
Een IDD is het UMDF-stuurprogramma van derden voor het apparaat. U kunt een IDD ontwikkelen met behulp van de functionaliteit die wordt weergegeven door de IddCx (Indirect Display Driver Class eXtension) om op de volgende manieren te interfaceren met de Windows-grafische subsystemen:
- Maak de grafische adapter die het indirecte beeldschermapparaat vertegenwoordigt.
- Rapportmonitors worden verbonden en losgekoppeld van het systeem.
- Geef beschrijvingen op van de verbonden monitors.
- Geef beschikbare weergavemodi op.
- Ondersteuning voor andere weergavefuncties, zoals hardwaremuiscursor, gamma, I2C-communicatie en beveiligde inhoud.
- De bureaubladafbeeldingen verwerken die op de monitor moeten worden weergegeven.
Omdat een IDD een UMDF-stuurprogramma is, is het ook verantwoordelijk voor het implementeren van alle UMDF-functionaliteit , zoals apparaatcommunicatie, energiebeheer, plug en play, enzovoort.
De IDD wordt uitgevoerd in sessie 0 zonder onderdelen die in de gebruikerssessie worden uitgevoerd, zodat instabiliteit van stuurprogramma's geen invloed heeft op de stabiliteit van het systeem als geheel.
Het volgende diagram biedt een architectuuroverzicht.
Gebruikersmodusmodel
De IDD maakt gebruik van een gebruikersmodusmodel en biedt geen ondersteuning voor kernelmodusonderdelen. Met dit model kan het stuurprogramma elke DirectX API gebruiken om de bureaubladafbeelding te verwerken. IddCx biedt het bureaubladbeeld voor codering in een DirectX-oppervlak.
Het stuurprogramma mag geen API's voor de gebruikersmodus aanroepen die niet geschikt zijn voor het gebruik van stuurprogramma's, zoals GDI, venster-API's, OpenGL of Vulkan.
Bouw de IDD als een universeel Windows-stuurprogramma , zodat u deze op meerdere Windows-platforms kunt gebruiken.
Tijdens de build:
- De UMDF IDD declareert de versie van IddCx op basis waarvan deze is gebouwd.
- Het besturingssysteem zorgt ervoor dat de juiste versie van IddCx wordt geladen wanneer het stuurprogramma wordt geladen.
IddCx-callback- en functienaamconventies
| Voorvoegsel | Typ | Opmerkingen |
|---|---|---|
| EVT_IDD_CX_XXX | IdD callback, functie | IdD's implementeren zowel IddCx-specifieke callbacks zoals EVT_IDD_CX_ADAPTER_COMMIT_MODES, als relevante WDF-callbacks, zoals EVT_WDF_DEVICE_D0_EXIT. |
| IddCxXxx | Functie | Door het systeem geleverde IddCx-klasseextensiefuncties die IDD's kunnen aanroepen; Bijvoorbeeld IddCxAdapterInitAsync. |
| PFN_IDDCX_XXX | Aanwijzers naar iddCx-functies | IDD's gebruiken deze aanwijzers niet. In plaats daarvan moeten stuurprogramma's de equivalente IddCxXxx-functies gebruiken. |
Voorbeeldcode
Microsoft biedt een voorbeeld-IDD-implementatie op GitHub voor Windows-stuurprogrammavoorbeelden. In dit voorbeeld ziet u hoe u een monitor verbindt, hoe u reageert op een modusset en hoe u frames ontvangt.