Direct3D-Laufzeitfunktionen, die von User-Mode-Anzeigetreibern aufgerufen werden
In diesem Thema werden die Funktionen aufgelistet, die die Microsoft Direct3D-Runtime für den Benutzermodusanzeigetreiber bereitstellt. Dazu gehören die Direct3D-Runtime-Kerneldienste, die auf Funktionen zugreifen, sowie die Funktionen der Direct3D-Runtime version 10 und 11. Diese Funktionen sind Teil der Benutzermodus-Direct3D-Anzeigetreiberschnittstellen, die das Betriebssystem über die Direct3D-Runtime implementiert.
Direct3D Runtime Kernel-Services Zugreifen auf Funktionen
Die Microsoft Direct3D-Runtime, Version 9 , stellt Zeiger auf adapterspezifische Rückruffunktionen über Elemente der D3DDDI_ADAPTERCALLBACKS-Struktur in einem Aufruf der OpenAdapter-Funktion des Benutzermodusanzeigetreibers bereit. Die Laufzeit stellt Zeiger bereit, um gerätespezifische Rückruffunktionen über Member der D3DDDI_DEVICECALLBACKS-Struktur in einem Aufruf der CreateDevice-Funktion des Benutzermodusanzeigetreibers anzuzeigen.
Microsoft Direct3D Version 10 oder höher stellt Zeiger auf adapterspezifische Rückruffunktionen über Member der D3DDDI_ADAPTERCALLBACKS-Struktur in einem Aufruf der OpenAdapter10 - oder OpenAdapter10_2-Funktion des Benutzermodus-Anzeigetreibers bereit. Die Laufzeit stellt Zeiger bereit, um gerätespezifische Rückruffunktionen über Member der D3DDDI_DEVICECALLBACKS-Struktur in einem Aufruf der CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers anzuzeigen.
- PFND3DDDI_ALLOCATECB
- PFND3DDDI_CREATECONTEXTVIRTUALCB
- PFND3DDDI_CREATEHWCONTEXTCB
- PFND3DDDI_CREATEHWQUEUECB
- PFND3DDDI_CREATEOVERLAYCB
- PFND3DDDI_CREATEPAGINGQUEUECB
- PFND3DDDI_CREATESYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_CREATESYNCHRONIZATIONOBJECTCB
- PFND3DDDI_DEALLOCATE2CB
- PFND3DDDI_DEALLOCATECB
- PFND3DDDI_DESTROYCONTEXTCB
- PFND3DDDI_DESTROYHWCONTEXTCB
- PFND3DDDI_DESTROYHWQUEUECB
- PFND3DDDI_DESTROYOVERLAYCB
- PFND3DDDI_DESTROYPAGINGQUEUECB
- PFND3DDDI_DESTROYSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_ESCAPECB
- PFND3DDDI_EVICTCB |
- PFND3DDDI_FLIPOVERLAYCB
- PFND3DDDI_FREEGPUVIRTUALADDRESSCB
- PFND3DDDI_GETMULTISAMPLEMETHODLISTCB
- PFND3DDDI_GETRESOURCEPRESENTPRIVATEDRIVERDATACB
- PFND3DDDI_LOCK2CB
- PFND3DDDI_LOCKCB
- PFND3DDDI_LOGUMDMARKERCB
- PFND3DDDI_MAKERESIDENTCB
- PFND3DDDI_MAPGPUVIRTUALADDRESSCB
- PFND3DDDI_OFFERALLOCATIONS
- PFND3DDDI_OFFERALLOCATIONS2CB
- PFND3DDDI_PRESENTCB
- PFND3DDDI_QUERYADAPTERINFOCB
- PFND3DDDI_QUERYRESIDENCYCB
- PFND3DDDI_RECLAIMALLOCATIONS2CB
- PFND3DDDI_RECLAIMALLOCATIONS3CB
- PFND3DDDI_RECLAIMALLOCATIONSCB
- PFND3DDDI_RENDERCB
- PFND3DDDI_RESERVEGPUVIRTUALADDRESSCB
- PFND3DDDI_SETASYNCCALLBACKSCB
- PFND3DDDI_SETDISPLAYMODECB
- PFND3DDDI_SETDISPLAYPRIVATEDRIVERFORMATCB
- PFND3DDDI_SETPRIORITYCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMCPUCB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2CB
- PFND3DDDI_SIGNALSYNCHRONIZATIONOBJECTFROMGPUCB
- PFND3DDDI_SUBMITCOMMANDCB
- PFND3DDDI_SUBMITCOMMANDTOHWQUEUECB
- PFND3DDDI_SUBMITSIGNALSYNCOBJECTSTOHWQUEUECB
- PFND3DDDI_SUBMITWAITFORSYNCOBJECTSTOHWQUEUECB
- PFND3DDDI_UNLOCK2CB
- PFND3DDDI_UNLOCKCB
- PFND3DDDI_UPDATEALLOCATIONPROPERTYCB
- PFND3DDDI_UPDATEOVERLAYCB
- PFND3DDDI_UPDATEGPUVIRTUALADDRESSCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECT2CB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMCPUCB
- PFND3DDDI_WAITFORSYNCHRONIZATIONOBJECTFROMGPUCB
- PFND3DWDDM2_0DDI_DECODEJPEG
- PFND3DWDDM2_0DDI_ENCODEJPEG
Direct3D-Parameterstrukturen
Die folgenden Strukturen werden von den Kerneldiensten der Direct3D-Laufzeit verwendet, die auf Funktionen zugreifen. Der Benutzermodusanzeigetreiber übergibt Zeiger auf diese Strukturen in Parametern der Laufzeitfunktionen.
- D3DDDI_UPDATEALLOCPROPERTY
- D3DDDICB_ALLOCATE
- D3DDDICB_CREATECONTEXT
- D3DDDICB_CREATECONTEXTVIRTUAL
- D3DDDICB_CREATEHWCONTEXT
- D3DDDICB_CREATEHWQUEUE
- D3DDDICB_CREATEOVERLAY
- D3DDDICB_CREATEPAGINGQUEUE
- D3DDDICB_CREATESYNCHRONIZATIONOBJECT2
- D3DDDICB_CREATESYNCHRONIZATIONOBJECT
- D3DDDICB_DESTROYHWCONTEXT
- D3DDDICB_DESTROYHWQUEUE
- D3DDDICB_DEALLOCATE
- D3DDDICB_DEALLOCATE2
- D3DDDICB_DESTROYCONTEXT
- D3DDDICB_DESTROYOVERLAY
- D3DDDICB_DESTROYSYNCHRONIZATIONOBJECT
- D3DDDICB_ESCAPE
- D3DDDICB_EVICT
- D3DDDICB_FLIPOVERLAY
- D3DDDICB_GETMULTISAMPLEMETHODLIST
- D3DDDICB_LOCK
- D3DDDICB_LOCK2FLAGS
- D3DDDICB_OFFERALLOCATIONS
- D3DDDICB_PRESENT
- D3DDDICB_QUERYADAPTERINFO
- D3DDDICB_QUERYRESIDENCY
- D3DDDICB_RECLAIMALLOCATIONS
- D3DDDICB_RECLAIMALLOCATIONS2
- D3DDDICB_RENDER
- D3DDDICB_SETDISPLAYMODE
- D3DDDICB_SETDISPLAYPRIVATEDRIVERFORMAT
- D3DDDICB_SETPRIORITY
- D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT
- D3DDDICB_SIGNALSYNCHRONIZATIONOBJECT2
- D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMCPU
- D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU
- D3DDDICB_SIGNALSYNCHRONIZATIONOBJECTFROMGPU2
- D3DDDICB_SUBMITCOMMAND
- D3DDDICB_SUBMITCOMMANDFLAGS
- D3DDDICB_SUBMITCOMMANDTOHWQUEUE
- D3DDDICB_SUBMITSIGNALSYNCOBJECTSTOHWQUEUE
- D3DDDICB_SUBMITWAITFORSYNCOBJECTSTOHWQUEUE
- D3DDDICB_UNLOCK
- D3DDDICB_UNLOCK2
- D3DDDICB_UPDATEGPUVIRTUALADDRESS
- D3DDDICB_UPDATEOVERLAY
- D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT
- D3DDDICB_WAITFORSYNCHRONIZATIONOBJECT2
- D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMCPU
- D3DDDICB_WAITFORSYNCHRONIZATIONOBJECTFROMGPU
Direct3D-Runtime, Version 10 und höher, Kernrückruffunktionen
In diesem Abschnitt werden die wichtigsten Rückruffunktionen beschrieben, die microsoft Direct3D 10 und höhere Runtimes für den Benutzermodus-Anzeigetreiber bereitstellen. Die Laufzeit stellt Zeiger auf kerne Rückruffunktionen über Elemente der D3D10DDI_CORELAYER_DEVICECALLBACKS-Struktur in einem Aufruf der CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers bereit.
Direct3D Runtime Version 10 Control Callback Functions
Im Folgenden sehen Sie eine Liste der Steuerelementrückruffunktionen, die microsoft Direct3D 10 und höher über die D3D10DDI_CORELAYER_DEVICECALLBACKS-Struktur für den Benutzermodusanzeigetreiber bereitstellen.
Direct3D Runtime Version 10 State-Refresh Rückruffunktionen
Im Folgenden sehen Sie eine Liste der Rückruffunktionen für Zustandsaktualisierungen, die die Microsoft Direct3D 10-Runtime dem Benutzermodusanzeigetreiber über die D3D10DDI_CORELAYER_DEVICECALLBACKS-Struktur bereitstellt.
Da die Direct3D 10-Runtime die aktuell gebundenen Zustandsobjekte für Anwendungen zwischenspeichert, speichert die Laufzeit auch aktuell gebundene Zustandsobjekte für Anzeigetreiber im Benutzermodus mit geringem Mehraufwand zwischen. Für jeden Aufruf, den der Anzeigetreiber im Benutzermodus an eine Rückruffunktion zur Zustandsaktualisierung vornimmt, ruft die Direct3D 10-Runtime eine Treiberstatusfunktion im selben Ausführungsthread auf, bevor sie zum aufrufenden Code im Treiber zurückkehrt. Um die Leistung zu verbessern, führen die Rückruffunktionen für Zustandsaktualisierungen keine Parametervalidierung durch.
Die Rückruffunktionen für zustandsaktualisierungen sind nützlich, wenn Sie versuchen, einen zustandslosen Treiber zu entwickeln oder Präambeldaten für Befehlspuffer zu erstellen. Die Rückruffunktionen für zustandsaktualisierungen ermöglichen es dem Benutzermodus-Anzeigetreiber auch, von hohen Wasserzeichen zu profitieren, die die Direct3D 10-Runtime verwaltet. Hohe Wasserzeichen geben den größten Slotindex an, der nicht NULL sein kann. Daher verbessern hohe Wasserzeichen die Durchläufe über solche Slots.
- PFND3D10DDI_STATE_GS_CONSTBUF_CB
- PFND3D10DDI_STATE_GS_SAMPLER_CB
- PFND3D10DDI_STATE_GS_SHADER_CB
- PFND3D10DDI_STATE_GS_SRV_CB
- PFND3D10DDI_STATE_IA_INDEXBUF_CB
- PFND3D10DDI_STATE_IA_INPUTLAYOUT_CB
- PFND3D10DDI_STATE_IA_PRIMITIVE_TOPOLOGY_CB
- PFND3D10DDI_STATE_IA_VERTEXBUF_CB
- PFND3D10DDI_STATE_OM_BLENDSTATE_CB
- PFND3D10DDI_STATE_OM_DEPTHSTATE_CB
- PFND3D10DDI_STATE_OM_RENDERTARGETS_CB
- PFND3D10DDI_STATE_PS_CONSTBUF_CB
- PFND3D10DDI_STATE_PS_SAMPLER_CB
- PFND3D10DDI_STATE_PS_SHADER_CB
- PFND3D10DDI_STATE_PS_SRV_CB
- PFND3D10DDI_STATE_RS_RASTSTATE_CB
- PFND3D10DDI_STATE_RS_SCISSOR_CB
- PFND3D10DDI_STATE_RS_VIEWPORTS_CB
- PFND3D10DDI_STATE_SO_TARGETS_CB
- PFND3D10DDI_STATE_TEXTFILTERSIZE_CB
- PFND3D10DDI_STATE_VS_CONSTBUF_CB
- PFND3D10DDI_STATE_VS_SAMPLER_CB
- PFND3D10DDI_STATE_VS_SHADER_CB
- PFND3D10DDI_STATE_VS_SRV_CB
Direct3D Runtime Version 10 Kernel-Services Zugreifen auf Funktionen
In diesem Abschnitt werden die Kerneldienste aufgelistet, die auf Funktionen zugreifen, die von der DXGI-Komponente (DirectX Graphics Infrastructure) der Microsoft Direct3D 10-Runtime für den Benutzermodusanzeigetreiber bereitgestellt werden. DXGI stellt Zeiger auf Kerneldienste bereit, die über Member der DXGI_DDI_BASE_CALLBACKS-Struktur in einem Aufruf der CreateDevice(D3D10) -Funktion des Benutzermodusanzeigetreibers auf Funktionen zugreifen.
- PFNDDXGIDDI_PRESENTCB
- PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAYCB
- PFNDDXGIDDI_PRESENT_MULTIPLANE_OVERLAY1C
- PFNDDXGIDDI_SUBMITPRESENTBLTTOHWQUEUECB
- PFNDDXGIDDI_SUBMITPRESENTTOHWQUEUECB
Funktionen der Direct3D-Runtime, Version 11
In diesem Abschnitt werden die wichtigsten Rückruffunktionen beschrieben, die microsoft Direct3D 11 und höher für den Benutzermodus-Anzeigetreiber bereitstellen. Die Laufzeit stellt Zeiger auf kerne Rückruffunktionen über Elemente der D3D11DDI_CORELAYER_DEVICECALLBACKS-Struktur in einem Aufruf der CreateDevice(D3D10)-Funktion des Benutzermodusanzeigetreibers bereit.
Direct3D Runtime Version 11 Control Callback Functions
In diesem Abschnitt werden die zusätzlichen Steuerelementrückruffunktionen aufgeführt, die microsoft Direct3D 11 und höhere Runtimes für den Benutzermodusanzeigetreiber bereitstellen.
Direct3D Runtime Version 11 State-Refresh Rückruffunktionen
In diesem Abschnitt werden die zusätzlichen Rückruffunktionen für Zustandsaktualisierungen aufgeführt, die von Microsoft Direct3D Version 11 und höher für den Benutzermodusanzeigetreiber bereitgestellt werden.
Da die Direct3D 11-Runtime die aktuell gebundenen Zustandsobjekte für Anwendungen zwischenspeichert, speichert die Laufzeit auch aktuell gebundene Zustandsobjekte für Benutzermodusanzeigetreiber mit geringem Mehraufwand zwischen. Für jeden Aufruf, den der Benutzermodusanzeigetreiber an eine Rückruffunktion für die Zustandsaktualisierung vornimmt, ruft die Direct3D 11-Runtime eine Treiberstatusfunktion im selben Ausführungsthread auf, bevor sie zum aufrufenden Code im Treiber zurückkehrt. Um die Leistung zu verbessern, führen die Rückruffunktionen für Zustandsaktualisierungen keine Parametervalidierung durch.
Die Rückruffunktionen für zustandsaktualisierungen sind nützlich, wenn Sie versuchen, einen zustandslosen Treiber zu entwickeln oder Präambeldaten für Befehlspuffer zu erstellen. Die Rückruffunktionen für zustandsaktualisierungen ermöglichen es dem Benutzermodus-Anzeigetreiber auch, von hohen Wasserzeichen zu profitieren, die die Direct3D 11-Runtime verwaltet. Hohe Wasserzeichen geben den größten Slotindex an, der nicht NULL sein kann. Daher verbessern hohe Wasserzeichen die Durchläufe über solche Slots.
- PFND3D11DDI_STATE_CS_CONSTBUF_CB
- PFND3D11DDI_STATE_CS_SAMPLER_CB
- PFND3D11DDI_STATE_CS_SHADER_CB
- PFND3D11DDI_STATE_CS_SRV_CB
- PFND3D11DDI_STATE_CS_UAV_CB
- PFND3D11DDI_STATE_DS_CONSTBUF_CB
- PFND3D11DDI_STATE_DS_SAMPLER_CB
- PFND3D11DDI_STATE_DS_SHADER_CB
- PFND3D11DDI_STATE_DS_SRV_CB
- PFND3D11DDI_STATE_HS_CONSTBUF_CB
- PFND3D11DDI_STATE_HS_SAMPLER_CB
- PFND3D11DDI_STATE_HS_SHADER_CB
- PFND3D11DDI_STATE_HS_SRV_CB
Direct3D Runtime, Version 12 und höher
Die Microsoft Direct3D 12- und höher-Runtimes stellen die folgenden Zentralen Rückruffunktionen für den Benutzermodusanzeigetreiber bereit.
- PFND3D12DDI_WRITEBUFFERIMMEDIATE_0032
- PFND3D12DDI_VIDEO_PROCESS_FRAME_0032
- PFND3D12DDI_VIDEO_DECODE_FRAME_0032
- PFND3D12DDI_VIDEO_DECODE_FRAME_0030
- PFND3D12DDI_TRANSFORMENCRYPTEDDATA_0030
- PFND3D12DDI_SETVIEWINSTANCEMASK_0033
- PFND3D12DDI_SETPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_OPENPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_OPENCRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_OPENCRYPTOSESSION_0030
- PFND3D12DDI_GETKEYBASEDATA_0030
- PFND3D12DDI_DESTROYVIDEODECODERHEAP_0032
- PFND3D12DDI_DESTROYPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_DESTROYCRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_DESTROYCRYPTOSESSION_0030
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0032
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0033
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0032
- PFND3D12DDI_CREATEVIDEODECODER_0032
- PFND3D12DDI_CREATEPROTECTEDRESOURCESESSION_0030
- PFND3D12DDI_CREATEHEAPANDRESOURCE_0030
- PFND3D12DDI_CREATECRYPTOSESSIONPOLICY_0030
- PFND3D12DDI_CREATECRYPTOSESSION_0030
- PFND3D12DDI_CREATE_PROTECTED_SESSION_CB_0030
- PFND3D12DDI_CREATE_PIPELINE_STATE_0033
- PFND3D12DDI_CALCPRIVATEVIDEOPROCESSORSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEODECODERSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAPSIZE_0033
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAPSIZE_0032
- PFND3D12DDI_CALCPRIVATEPROTECTEDRESOURCESESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDPROTECTEDRESOURCESESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDCRYPTOSESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATEOPENEDCRYPTOSESSIONPOLICYSIZE_0030
- PFND3D12DDI_CALCPRIVATECRYPTOSESSIONSIZE_0030
- PFND3D12DDI_CALCPRIVATECRYPTOSESSIONPOLICYSIZE_0030
- PFND3D12DDI_CALC_PRIVATE_PIPELINE_STATE_SIZE_0033
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0043
- PFND3D12DDI_DESTROYVIDEODECODERHEAP_0032
- PFND3D12DDI_CREATEVIDEODECODERHEAP_0033
- PFND3D12DDI_CALCPRIVATEVIDEODECODERHEAP
- PFND3D12DDI_DESTROYVIDEODECODER_0021
- PFND3D12DDI_CALCPRIVATEVIDEODECODER
- PFND3D12DDI_ALLOCATE_CB_0022
- PFND3D12DDI_BEGIN_END_QUERY_0003
- PFND3D12DDI_CALCPRIVATECOMMANDQUEUESIZE_0023
- PFND3D12DDI_CALCPRIVATEVIDEODECODERSIZE_0032
- PFND3D12DDI_CALCPRIVATEVIDEOPROCESSORSIZE_0032
- PFND3D12DDI_CHECKRESOURCEALLOCATIONINFO_0022
- PFND3D12DDI_CHECKEXISITINGRESOURCEALLOCATIONINFO_0022
- PFND3D12DDI_CREATE_PIPELINE_STATE_0021
- PFND3D12DDI_CREATECOMMANDQUEUE_0023
- PFND3D12DDI_CREATEVIDEODECODER_0032
- PFND3D12DDI_CREATEVIDEOPROCESSOR_0032
- PFND3D12DDI_DEALLOCATE_CB_0022
- PFND3D12DDI_DESTROYVIDEODECODER_0021
- PFND3D12DDI_DESTROYVIDEOPROCESSOR_0021
- PFND3D12DDI_GETPAGEABLESIZE
- PFND3D12DDI_RESOLVE_QUERY_DATA
- PFND3D12DDI_RESOURCEBARRIER_0022
- PFND3D12DDI_SET_EXTENDED_FEATURE_CALLBACKS_0021
- PFND3D12DDI_SET_PREDICATION
- PFND3D12DDI_SHADERCACHEGETVALUE_CB_0021
- PFND3D12DDI_SHADERCACHESTOREVALUE_CB_0021
- PFND3D12DDI_VIDEO_DECODE_FRAME
- PFND3D12DDI_VIDEO_DECODER_TRIM_ALLOCATIONS
- PFND3D12DDI_VIDEO_GET_DECODE_BITSTREAM_ENCRYPTION_SCHEME_COUNT
- PFND3D12DDI_VIDEO_GET_DECODE_FORMAT_COUNT
- PFND3D12DDI_VIDEO_GET_DECODE_PROFILE_COUNT
- PFND3D12DDI_VIDEO_GETCAPS
- PFND3D12DDI_VIDEO_PROCESS_FRAME_0032
- PFND3D12DDI_VIDEO_PROCESSOR_TRIM_ALLOCATIONS
- PFND3DWDDM2_0DDI_GETRESOURCELAYOUT
- PFND3DWDDM2_2DDI_CALCPRIVATE_SHADERCACHE_SESSION_SIZE
- PFND3DWDDM2_2DDI_CREATE_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_DESTROY_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_RELOCATEDEVICEFUNCS
- PFND3DWDDM2_2DDI_SET_SHADERCACHE_SESSION
- PFND3DWDDM2_2DDI_SHADERCACHE_ADDREF_RELEASE_CB
- PFND3DWDDM2_2DDI_SHADERCACHE_GET_VALUE
- PFND3DWDDM2_2DDI_SHADERCACHE_STORE_VALUE
Weitere Informationen
Unterstützung für Mehrschichtüberlagerungen
Direct3D-Funktionen, die von Benutzermodusanzeigetreibern implementiert werden