Dela via


Initiera kommunikation med Direct3D-User-Mode visningsdrivrutin

Om du vill initiera kommunikationen med Microsoft Direct3D-användarlägesvisningsdrivrutinens DLL version 11 DDI läser Direct3D-körningen först in DLL:en. Direct3D-körningen anropar sedan visningsdrivrutinens OpenAdapter funktion via DLL:s exporttabell för att öppna en instans av grafikadaptern. Funktionen OpenAdapter är DLL:ets enda exporterade funktion.

I anropet till drivrutinens OpenAdapter--funktion tillhandahåller körningen funktionen pfnQueryAdapterInfoCb adapterns återanropsfunktion i pAdapterCallbacks medlem i D3DDDIARG_OPENADAPTER-strukturen. Körningen tillhandahåller också sin version i Interface och Version medlemmar i D3DDDIARG_OPENADAPTER. Grafikdrivrutinen i användarläge måste kontrollera att den kan använda den här versionen av runtime-miljön. Visningsdrivrutinen i användarläge returnerar en tabell med sina adapterspecifika funktioner i pAdapterFuncs medlem i D3DDDIARG_OPENADAPTER.

Användarlägesvisningsdrivrutinen ska anropa pfnQueryAdapterInfoCb adapterns callback-funktion för att hämta information om grafikmaskinvarans kapacitet från miniportdrivrutinen för bildskärmen.

Körtiden anropar användarlägesvisningsdrivrutinens CreateDevice funktion (en av drivrutinens adapter-specifika funktioner) för att skapa en visningsenhet för att hantera en samling renderingtillstånd och fullborda initieringen. När initieringen är klar kan Direct3D-körningen anropa funktioner som tillhandahålls av drivrutinen, och visningsdrivrutinen i användarläge kan anropa funktioner som tillhandahålls av körningsmiljön.

Användarlägesvisningsdrivrutinens CreateDevice--funktion anropas med en D3DDDIARG_CREATEDEVICE struktur vars medlemmar har konfigurerats på följande sätt för att initiera användarlägets gränssnitt för visningsdrivrutiner:

  • Körtiden ställer in Gränssnitt till den version av gränssnittet som körtiden kräver från användarlägesvisningsdrivrutinen.

  • Körningen sätter Version till ett tal som drivrutinen kan använda för att identifiera när körningen byggdes. Drivrutinen kan till exempel använda versionsnumret för att skilja mellan en körning som släppts med Windows Vista och en körning som släppts med ett efterföljande Service Pack, som kan innehålla en korrigering som drivrutinen kräver.

  • Körtiden sätter hDevice för att specificera handtaget som drivrutinen ska använda när drivrutinen anropar tillbaka till körtiden. Drivrutinen genererar ett unikt handtag och skickar det tillbaka till körtiden i hDevice. Körtiden ska använda det returnerade hEnhet handtaget för efterföljande drivrutinsanrop.

  • Körningen tillhandahåller en tabell med dess enhetsspecifika återanropsfunktioner i den D3DDDI_DEVICECALLBACKS struktur som pCallbacks punkter till. Användarlägesdrivrutinen för visning anropar de återanropsfunktioner som tillhandahålls av runtime för att få åtkomst till kernellägestjänster i visningsminiportdrivrutinen.

  • Visningsdrivrutinen i användarläge returnerar en tabell med sina enhetsspecifika funktioner i den D3DDDI_DEVICEFUNCS-struktur som pDeviceFuncs pekar på.

Anmärkning

Antalet visningsenheter (grafikkontexter) som kan finnas samtidigt begränsas endast av tillgängligt systemminne.