Changeset 42054 in vbox for trunk/src/VBox/Additions/WINNT/Graphics/Video
- Timestamp:
- Jul 9, 2012 12:44:47 PM (13 years ago)
- Location:
- trunk/src/VBox/Additions/WINNT/Graphics/Video
- Files:
-
- 2 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Additions/WINNT/Graphics/Video/Makefile.kmk
r41477 r42054 86 86 VBoxVideoWddm-inf_SOURCES.amd64 += \ 87 87 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxDispD3D-x86.dll 88 endif 88 endif # VBOXWDDM_WITH_DISPD3D 89 89 90 90 ifdef VBOXWDDM_WITH_GL … … 109 109 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxOGLpackspu-x86.dll \ 110 110 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxOGLpassthroughspu-x86.dll 111 endif 111 endif # VBOXWDDM_WITH_GL 112 112 113 113 endif # signing … … 133 133 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxDispD3D-x86.dll: $$(VBoxDispD3D-x86_1_TARGET) | $$(dir $$@) 134 134 $(INSTALL) -m 644 $< $(@D) 135 endif 136 endif 135 endif # ($(KBUILD_TARGET_ARCH), amd64) 136 endif # VBOXWDDM_WITH_DISPD3D 137 137 138 138 ifdef VBOXWDDM_WITH_GL … … 191 191 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxOGLpassthroughspu-x86.dll: $$(VBoxOGLpassthroughspu-x86_1_TARGET) | $$(dir $$@) 192 192 $(INSTALL) -m 644 $< $(@D) 193 endif 194 endif 193 endif # ($(KBUILD_TARGET_ARCH), amd64) 194 endif # VBOXWDDM_WITH_GL 195 195 196 196 $(PATH_TARGET)/VBoxVideoWddmCat.dir/VBoxVideoWddm.cat: \ … … 220 220 $(call MSG_TOOL,Inf2Cat,VBoxVideoWddm-inf,$@,$<) 221 221 $(call VBOX_MAKE_CAT_FN, $(@D),$@) 222 endif 222 223 ifdef VBOX_WDDM_WIN8 224 # VBOXWDDMW8_WITH_DISPD3D = 1 225 ifdef VBOX_WITH_CROGL 226 # VBOXWDDMW8_WITH_GL = 1 227 endif 228 229 230 INSTALLS += VBoxVideoW8-inf 231 VBoxVideoW8-inf_INST = $(INST_ADDITIONS) 232 VBoxVideoW8-inf_MODE = a+r,u+w 233 VBoxVideoW8-inf_SOURCES = \ 234 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.inf 235 ifdef VBOX_SIGN_ADDITIONS 236 VBoxVideoW8-inf_SOURCES += \ 237 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.sys \ 238 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.cat 239 240 ifdef VBOXWDDMW8_WITH_DISPD3D 241 VBoxVideoW8-inf_SOURCES += \ 242 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D.dll 243 VBoxVideoW8-inf_SOURCES.amd64 += \ 244 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D-x86.dll 245 endif # VBOXWDDMW8_WITH_DISPD3D 246 247 ifdef VBOXWDDMW8_WITH_GL 248 VBoxVideoW8-inf_SOURCES += \ 249 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL.dll \ 250 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm.dll \ 251 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm.dll \ 252 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu.dll \ 253 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil.dll \ 254 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu.dll \ 255 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu.dll \ 256 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu.dll \ 257 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu.dll 258 VBoxVideoW8-inf_SOURCES.amd64 += \ 259 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL-x86.dll \ 260 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm-x86.dll \ 261 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm-x86.dll \ 262 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu-x86.dll \ 263 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil-x86.dll \ 264 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu-x86.dll \ 265 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu-x86.dll \ 266 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu-x86.dll \ 267 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu-x86.dll 268 endif # VBOXWDDMW8_WITH_GL 269 270 endif # signing 271 VBoxVideoW8-inf_CLEAN = $(VBoxVideoW8-inf_SOURCES) 272 VBoxVideoW8-inf_BLDDIRS = \ 273 $(PATH_TARGET)/VBoxVideoW8Cat.dir 274 275 VBOXWDDMW8_EDIT_INF_DISPD3D_FN_ARG = $(if $(VBOXWDDMW8_WITH_DISPD3D),-e 's/^;dispd3d *//', -e '/^;dispd3d /d') 276 VBOXWDDMW8_EDIT_INF_GL_FN_ARG = $(if $(VBOXWDDMW8_WITH_GL),-e 's/^;gl *//', -e '/^;gl /d') 277 278 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.inf: $(PATH_SUB_CURRENT)/mp/wddm/VBoxVideoW8.inf $(MAKEFILE_CURRENT) | $$(dir $$@) 279 $(call MSG_GENERATE,VBoxVideoW8-inf,$@,$<) 280 $(call VBOX_EDIT_INF_FN,$<,$@ $(VBOXWDDMW8_EDIT_INF_DISPD3D_FN_ARG) $(VBOXWDDMW8_EDIT_INF_GL_FN_ARG)) 281 282 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.sys: $$(VBoxVideoW8_1_TARGET) | $$(dir $$@) 283 $(INSTALL) -m 644 $< $(@D) 284 285 ifdef VBOXWDDMW8_WITH_DISPD3D 286 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D.dll: $$(VBoxDispD3D_1_TARGET) | $$(dir $$@) 287 $(INSTALL) -m 644 $< $(@D) 288 289 ifeq ($(KBUILD_TARGET_ARCH),amd64) 290 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D-x86.dll: $$(VBoxDispD3D-x86_1_TARGET) | $$(dir $$@) 291 $(INSTALL) -m 644 $< $(@D) 292 endif # ($(KBUILD_TARGET_ARCH), amd64) 293 endif # VBOXWDDMW8_WITH_DISPD3D 294 295 ifdef VBOXWDDMW8_WITH_GL 296 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL.dll: $$(VBoxOGL_1_TARGET) | $$(dir $$@) 297 $(INSTALL) -m 644 $< $(@D) 298 299 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm.dll: $$(VBoxD3D9wddm_1_TARGET) | $$(dir $$@) 300 $(INSTALL) -m 644 $< $(@D) 301 302 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm.dll: $$(wined3dwddm_1_TARGET) | $$(dir $$@) 303 $(INSTALL) -m 644 $< $(@D) 304 305 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu.dll: $$(VBoxOGLarrayspu_1_TARGET) | $$(dir $$@) 306 $(INSTALL) -m 644 $< $(@D) 307 308 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil.dll: $$(VBoxOGLcrutil_1_TARGET) | $$(dir $$@) 309 $(INSTALL) -m 644 $< $(@D) 310 311 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu.dll: $$(VBoxOGLerrorspu_1_TARGET) | $$(dir $$@) 312 $(INSTALL) -m 644 $< $(@D) 313 314 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu.dll: $$(VBoxOGLfeedbackspu_1_TARGET) | $$(dir $$@) 315 $(INSTALL) -m 644 $< $(@D) 316 317 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu.dll: $$(VBoxOGLpackspu_1_TARGET) | $$(dir $$@) 318 $(INSTALL) -m 644 $< $(@D) 319 320 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu.dll: $$(VBoxOGLpassthroughspu_1_TARGET) | $$(dir $$@) 321 $(INSTALL) -m 644 $< $(@D) 322 323 ifeq ($(KBUILD_TARGET_ARCH), amd64) 324 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL-x86.dll: $$(VBoxOGL-x86_1_TARGET) | $$(dir $$@) 325 $(INSTALL) -m 644 $< $(@D) 326 327 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm-x86.dll: $$(VBoxD3D9wddm-x86_1_TARGET) | $$(dir $$@) 328 $(INSTALL) -m 644 $< $(@D) 329 330 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm-x86.dll: $$(wined3dwddm-x86_1_TARGET) | $$(dir $$@) 331 $(INSTALL) -m 644 $< $(@D) 332 333 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu-x86.dll: $$(VBoxOGLarrayspu-x86_1_TARGET) | $$(dir $$@) 334 $(INSTALL) -m 644 $< $(@D) 335 336 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil-x86.dll: $$(VBoxOGLcrutil-x86_1_TARGET) | $$(dir $$@) 337 $(INSTALL) -m 644 $< $(@D) 338 339 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu-x86.dll: $$(VBoxOGLerrorspu-x86_1_TARGET) | $$(dir $$@) 340 $(INSTALL) -m 644 $< $(@D) 341 342 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu-x86.dll: $$(VBoxOGLfeedbackspu-x86_1_TARGET) | $$(dir $$@) 343 $(INSTALL) -m 644 $< $(@D) 344 345 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu-x86.dll: $$(VBoxOGLpackspu-x86_1_TARGET) | $$(dir $$@) 346 $(INSTALL) -m 644 $< $(@D) 347 348 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu-x86.dll: $$(VBoxOGLpassthroughspu-x86_1_TARGET) | $$(dir $$@) 349 $(INSTALL) -m 644 $< $(@D) 350 endif # ($(KBUILD_TARGET_ARCH), amd64) 351 endif # VBOXWDDMW8_WITH_GL 352 353 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.cat: \ 354 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.inf \ 355 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxVideoW8.sys \ 356 $(if $(VBOXWDDMW8_WITH_DISPD3D), $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D.dll, ) \ 357 $(if $(VBOXWDDMW8_WITH_DISPD3D), $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64", $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxDispD3D-x86.dll, ), ) \ 358 $(if $(VBOXWDDMW8_WITH_GL), $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL.dll \ 359 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm.dll \ 360 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm.dll \ 361 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu.dll \ 362 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil.dll \ 363 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu.dll \ 364 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu.dll \ 365 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu.dll \ 366 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu.dll, ) \ 367 $(if $(VBOXWDDMW8_WITH_GL), $(if-expr "$(KBUILD_TARGET_ARCH)" == "amd64", \ 368 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGL-x86.dll \ 369 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxD3D9wddm-x86.dll \ 370 $(PATH_TARGET)/VBoxVideoW8Cat.dir/wined3dwddm-x86.dll \ 371 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLarrayspu-x86.dll \ 372 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLcrutil-x86.dll \ 373 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLerrorspu-x86.dll \ 374 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLfeedbackspu-x86.dll \ 375 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpackspu-x86.dll \ 376 $(PATH_TARGET)/VBoxVideoW8Cat.dir/VBoxOGLpassthroughspu-x86.dll, ), ) 377 $(call MSG_TOOL,Inf2Cat,VBoxVideoW8-inf,$@,$<) 378 $(call VBOX_MAKE_CAT_FN, $(@D),$@) 379 endif # VBOX_WDDM_WIN8 380 endif # VBOX_WITH_WDDM 223 381 224 382 include $(FILE_KBUILD_SUB_FOOTER) -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/Makefile.kmk
r42028 r42054 148 148 $(VBOX_LIB_IPRT_GUEST_R0_NT4) \ 149 149 $(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB) 150 151 ifdef VBOX_WDDM_WIN8 152 # 153 # VBoxVideoW8 - Windows Guest Additions WDDM 1.2 Miniport Video Driver for Win8 154 # 155 SYSMODS += VBoxVideoW8 156 VBoxVideoW8_EXTENDS = VBoxVideoWddm 157 VBoxVideoW8_TEMPLATE = VBOXGUESTWIN8R0 158 VBoxVideoW8_DEFS += $(VBoxVideoWddm_DEFS) VBOX_WDDM_WIN8 159 VBoxVideoW8_SDKS = WINDDKW8 160 VBoxVideoW8_SOURCES = $(subst VBoxMPWddm.rc,VBoxMPW8.rc,$(VBoxVideoWddm_SOURCES)) 161 VBoxVideoW8_LIBS.x86 = \ 162 $(PATH_SDK_WINDDKW8_LIB)/BufferOverflowK.lib 163 #VBoxVideoW8_LIBS.x86 += \ 164 # $(PATH_SDK_WINDDKW8_LIB)/exsup.lib 165 VBoxVideoW8_LIBS = \ 166 $(PATH_SDK_WINDDKW8_LIB)/ntoskrnl.lib \ 167 $(PATH_SDK_WINDDKW8_LIB)/hal.lib \ 168 $(PATH_SDK_WINDDKW8_LIB)/displib.lib \ 169 $(VBOX_LIB_VBGL_R0) \ 170 $(VBOX_LIB_IPRT_GUEST_R0_NT4) \ 171 $(VBOX_PATH_ADDITIONS_LIB)/HGSMIGuestR0Lib$(VBOX_SUFF_LIB) 172 endif # VBOX_WDDM_WIN8 173 150 174 endif # VBOX_WITH_WDDM 151 175 … … 159 183 VBoxVideoWddm_DEBUG_INSTTYPE = both 160 184 endif 161 endif 185 endif # VBOX_SIGN_ADDITIONS 162 186 163 187 include $(FILE_KBUILD_SUB_FOOTER) -
trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPWddm.cpp
r41638 r42054 6134 6134 } 6135 6135 6136 #ifdef VBOX_WDDM_WIN8 6137 6138 static NTSTATUS APIENTRY DxgkDdiQueryVidPnHWCapability( 6139 __in const HANDLE hAdapter, 6140 __inout DXGKARG_QUERYVIDPNHWCAPABILITY *pVidPnHWCaps 6141 ) 6142 { 6143 LOGF(("ENTER, hAdapter(0x%x)", hAdapter)); 6144 vboxVDbgBreakF(); 6145 pVidPnHWCaps->VidPnHWCaps.DriverRotation = 0; 6146 pVidPnHWCaps->VidPnHWCaps.DriverScaling = 0; 6147 pVidPnHWCaps->VidPnHWCaps.DriverCloning = 0; 6148 pVidPnHWCaps->VidPnHWCaps.DriverColorConvert = 0; 6149 pVidPnHWCaps->VidPnHWCaps.DriverLinkedAdapaterOutput = 0; 6150 pVidPnHWCaps->VidPnHWCaps.DriverRemoteDisplay = 0; 6151 LOGF(("LEAVE, hAdapter(0x%x)", hAdapter)); 6152 return STATUS_SUCCESS; 6153 } 6154 6155 static NTSTATUS APIENTRY DxgkDdiPresentDisplayOnly( 6156 _In_ const HANDLE hAdapter, 6157 _In_ const DXGKARG_PRESENT_DISPLAYONLY *pPresentDisplayOnly 6158 ) 6159 { 6160 LOGF(("ENTER, hAdapter(0x%x)", hAdapter)); 6161 vboxVDbgBreakFv(); 6162 AssertBreakpoint(); 6163 LOGF(("LEAVE, hAdapter(0x%x)", hAdapter)); 6164 return STATUS_SUCCESS; 6165 } 6166 6167 static NTSTATUS DxgkDdiStopDeviceAndReleasePostDisplayOwnership( 6168 _In_ PVOID MiniportDeviceContext, 6169 _In_ D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId, 6170 _Out_ PDXGK_DISPLAY_INFORMATION DisplayInfo 6171 ) 6172 { 6173 LOGF(("ENTER, hAdapter(0x%x)", MiniportDeviceContext)); 6174 vboxVDbgBreakFv(); 6175 AssertBreakpoint(); 6176 LOGF(("LEAVE, hAdapter(0x%x)", MiniportDeviceContext)); 6177 return STATUS_NOT_SUPPORTED; 6178 } 6179 6180 static NTSTATUS DxgkDdiSystemDisplayEnable( 6181 _In_ PVOID MiniportDeviceContext, 6182 _In_ D3DDDI_VIDEO_PRESENT_TARGET_ID TargetId, 6183 _In_ PDXGKARG_SYSTEM_DISPLAY_ENABLE_FLAGS Flags, 6184 _Out_ UINT *Width, 6185 _Out_ UINT *Height, 6186 _Out_ D3DDDIFORMAT *ColorFormat 6187 ) 6188 { 6189 LOGF(("ENTER, hAdapter(0x%x)", MiniportDeviceContext)); 6190 vboxVDbgBreakFv(); 6191 AssertBreakpoint(); 6192 LOGF(("LEAVE, hAdapter(0x%x)", MiniportDeviceContext)); 6193 return STATUS_NOT_SUPPORTED; 6194 } 6195 6196 static VOID DxgkDdiSystemDisplayWrite( 6197 _In_ PVOID MiniportDeviceContext, 6198 _In_ PVOID Source, 6199 _In_ UINT SourceWidth, 6200 _In_ UINT SourceHeight, 6201 _In_ UINT SourceStride, 6202 _In_ UINT PositionX, 6203 _In_ UINT PositionY 6204 ) 6205 { 6206 LOGF(("ENTER, hAdapter(0x%x)", MiniportDeviceContext)); 6207 vboxVDbgBreakFv(); 6208 AssertBreakpoint(); 6209 LOGF(("LEAVE, hAdapter(0x%x)", MiniportDeviceContext)); 6210 } 6211 6212 static NTSTATUS DxgkDdiGetChildContainerId( 6213 _In_ PVOID MiniportDeviceContext, 6214 _In_ ULONG ChildUid, 6215 _Inout_ PDXGK_CHILD_CONTAINER_ID ContainerId 6216 ) 6217 { 6218 LOGF(("ENTER, hAdapter(0x%x)", MiniportDeviceContext)); 6219 vboxVDbgBreakFv(); 6220 AssertBreakpoint(); 6221 LOGF(("LEAVE, hAdapter(0x%x)", MiniportDeviceContext)); 6222 return STATUS_SUCCESS; 6223 } 6224 6225 static NTSTATUS APIENTRY DxgkDdiSetPowerComponentFState( 6226 _In_ const HANDLE DriverContext, 6227 UINT ComponentIndex, 6228 UINT FState 6229 ) 6230 { 6231 LOGF(("ENTER, DriverContext(0x%x)", DriverContext)); 6232 vboxVDbgBreakFv(); 6233 AssertBreakpoint(); 6234 LOGF(("LEAVE, DriverContext(0x%x)", DriverContext)); 6235 return STATUS_SUCCESS; 6236 } 6237 6238 static NTSTATUS APIENTRY DxgkDdiPowerRuntimeControlRequest( 6239 _In_ const HANDLE DriverContext, 6240 _In_ LPCGUID PowerControlCode, 6241 _In_opt_ PVOID InBuffer, 6242 _In_ SIZE_T InBufferSize, 6243 _Out_opt_ PVOID OutBuffer, 6244 _In_ SIZE_T OutBufferSize, 6245 _Out_opt_ PSIZE_T BytesReturned 6246 ) 6247 { 6248 LOGF(("ENTER, DriverContext(0x%x)", DriverContext)); 6249 vboxVDbgBreakFv(); 6250 AssertBreakpoint(); 6251 LOGF(("LEAVE, DriverContext(0x%x)", DriverContext)); 6252 return STATUS_SUCCESS; 6253 } 6254 6255 static NTSTATUS DxgkDdiNotifySurpriseRemoval( 6256 _In_ PVOID MiniportDeviceContext, 6257 _In_ DXGK_SURPRISE_REMOVAL_TYPE RemovalType 6258 ) 6259 { 6260 LOGF(("ENTER, hAdapter(0x%x)", MiniportDeviceContext)); 6261 vboxVDbgBreakFv(); 6262 AssertBreakpoint(); 6263 LOGF(("LEAVE, hAdapter(0x%x)", MiniportDeviceContext)); 6264 return STATUS_SUCCESS; 6265 } 6266 6267 static NTSTATUS vboxWddmInitDisplayOnlyDriver(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath) 6268 { 6269 KMDDOD_INITIALIZATION_DATA DriverInitializationData = {'\0'}; 6270 6271 DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION_WIN8; 6272 6273 DriverInitializationData.DxgkDdiAddDevice = DxgkDdiAddDevice; 6274 DriverInitializationData.DxgkDdiStartDevice = DxgkDdiStartDevice; 6275 DriverInitializationData.DxgkDdiStopDevice = DxgkDdiStopDevice; 6276 DriverInitializationData.DxgkDdiRemoveDevice = DxgkDdiRemoveDevice; 6277 DriverInitializationData.DxgkDdiDispatchIoRequest = DxgkDdiDispatchIoRequest; 6278 DriverInitializationData.DxgkDdiInterruptRoutine = DxgkDdiInterruptRoutine; 6279 DriverInitializationData.DxgkDdiDpcRoutine = DxgkDdiDpcRoutine; 6280 DriverInitializationData.DxgkDdiQueryChildRelations = DxgkDdiQueryChildRelations; 6281 DriverInitializationData.DxgkDdiQueryChildStatus = DxgkDdiQueryChildStatus; 6282 DriverInitializationData.DxgkDdiQueryDeviceDescriptor = DxgkDdiQueryDeviceDescriptor; 6283 DriverInitializationData.DxgkDdiSetPowerState = DxgkDdiSetPowerState; 6284 DriverInitializationData.DxgkDdiNotifyAcpiEvent = DxgkDdiNotifyAcpiEvent; 6285 DriverInitializationData.DxgkDdiResetDevice = DxgkDdiResetDevice; 6286 DriverInitializationData.DxgkDdiUnload = DxgkDdiUnload; 6287 DriverInitializationData.DxgkDdiQueryInterface = DxgkDdiQueryInterface; 6288 DriverInitializationData.DxgkDdiControlEtwLogging = DxgkDdiControlEtwLogging; 6289 DriverInitializationData.DxgkDdiQueryAdapterInfo = DxgkDdiQueryAdapterInfo; 6290 DriverInitializationData.DxgkDdiSetPalette = DxgkDdiSetPalette; 6291 DriverInitializationData.DxgkDdiSetPointerPosition = DxgkDdiSetPointerPosition; 6292 DriverInitializationData.DxgkDdiSetPointerShape = DxgkDdiSetPointerShape; 6293 DriverInitializationData.DxgkDdiEscape = DxgkDdiEscape; 6294 DriverInitializationData.DxgkDdiCollectDbgInfo = DxgkDdiCollectDbgInfo; 6295 DriverInitializationData.DxgkDdiIsSupportedVidPn = DxgkDdiIsSupportedVidPn; 6296 DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = DxgkDdiRecommendFunctionalVidPn; 6297 DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = DxgkDdiEnumVidPnCofuncModality; 6298 DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility; 6299 DriverInitializationData.DxgkDdiCommitVidPn = DxgkDdiCommitVidPn; 6300 DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath; 6301 DriverInitializationData.DxgkDdiRecommendMonitorModes = DxgkDdiRecommendMonitorModes; 6302 DriverInitializationData.DxgkDdiGetScanLine = DxgkDdiGetScanLine; 6303 DriverInitializationData.DxgkDdiQueryVidPnHWCapability = DxgkDdiQueryVidPnHWCapability; 6304 DriverInitializationData.DxgkDdiPresentDisplayOnly = DxgkDdiPresentDisplayOnly; 6305 DriverInitializationData.DxgkDdiStopDeviceAndReleasePostDisplayOwnership = DxgkDdiStopDeviceAndReleasePostDisplayOwnership; 6306 DriverInitializationData.DxgkDdiSystemDisplayEnable = DxgkDdiSystemDisplayEnable; 6307 DriverInitializationData.DxgkDdiSystemDisplayWrite = DxgkDdiSystemDisplayWrite; 6308 // DriverInitializationData.DxgkDdiGetChildContainerId = DxgkDdiGetChildContainerId; 6309 DriverInitializationData.DxgkDdiControlInterrupt = DxgkDdiControlInterrupt; 6310 // DriverInitializationData.DxgkDdiSetPowerComponentFState = DxgkDdiSetPowerComponentFState; 6311 // DriverInitializationData.DxgkDdiPowerRuntimeControlRequest = DxgkDdiPowerRuntimeControlRequest; 6312 // DriverInitializationData.DxgkDdiNotifySurpriseRemoval = DxgkDdiNotifySurpriseRemoval; 6313 6314 NTSTATUS Status = DxgkInitializeDisplayOnlyDriver(pDriverObject, 6315 pRegistryPath, 6316 &DriverInitializationData); 6317 if (!NT_SUCCESS(Status)) 6318 { 6319 WARN(("DxgkInitializeDisplayOnlyDriver failed! Status 0x%x", Status)); 6320 } 6321 return Status; 6322 } 6323 #endif 6324 6325 static NTSTATUS vboxWddmInitFullGraphicsDriver(IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath) 6326 { 6327 DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'}; 6328 6329 // Fill in the DriverInitializationData structure and call DxgkInitialize() 6330 DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION; 6331 6332 DriverInitializationData.DxgkDdiAddDevice = DxgkDdiAddDevice; 6333 DriverInitializationData.DxgkDdiStartDevice = DxgkDdiStartDevice; 6334 DriverInitializationData.DxgkDdiStopDevice = DxgkDdiStopDevice; 6335 DriverInitializationData.DxgkDdiRemoveDevice = DxgkDdiRemoveDevice; 6336 DriverInitializationData.DxgkDdiDispatchIoRequest = DxgkDdiDispatchIoRequest; 6337 DriverInitializationData.DxgkDdiInterruptRoutine = DxgkDdiInterruptRoutine; 6338 DriverInitializationData.DxgkDdiDpcRoutine = DxgkDdiDpcRoutine; 6339 DriverInitializationData.DxgkDdiQueryChildRelations = DxgkDdiQueryChildRelations; 6340 DriverInitializationData.DxgkDdiQueryChildStatus = DxgkDdiQueryChildStatus; 6341 DriverInitializationData.DxgkDdiQueryDeviceDescriptor = DxgkDdiQueryDeviceDescriptor; 6342 DriverInitializationData.DxgkDdiSetPowerState = DxgkDdiSetPowerState; 6343 DriverInitializationData.DxgkDdiNotifyAcpiEvent = DxgkDdiNotifyAcpiEvent; 6344 DriverInitializationData.DxgkDdiResetDevice = DxgkDdiResetDevice; 6345 DriverInitializationData.DxgkDdiUnload = DxgkDdiUnload; 6346 DriverInitializationData.DxgkDdiQueryInterface = DxgkDdiQueryInterface; 6347 DriverInitializationData.DxgkDdiControlEtwLogging = DxgkDdiControlEtwLogging; 6348 6349 DriverInitializationData.DxgkDdiQueryAdapterInfo = DxgkDdiQueryAdapterInfo; 6350 DriverInitializationData.DxgkDdiCreateDevice = DxgkDdiCreateDevice; 6351 DriverInitializationData.DxgkDdiCreateAllocation = DxgkDdiCreateAllocation; 6352 DriverInitializationData.DxgkDdiDestroyAllocation = DxgkDdiDestroyAllocation; 6353 DriverInitializationData.DxgkDdiDescribeAllocation = DxgkDdiDescribeAllocation; 6354 DriverInitializationData.DxgkDdiGetStandardAllocationDriverData = DxgkDdiGetStandardAllocationDriverData; 6355 DriverInitializationData.DxgkDdiAcquireSwizzlingRange = DxgkDdiAcquireSwizzlingRange; 6356 DriverInitializationData.DxgkDdiReleaseSwizzlingRange = DxgkDdiReleaseSwizzlingRange; 6357 DriverInitializationData.DxgkDdiPatch = DxgkDdiPatch; 6358 DriverInitializationData.DxgkDdiSubmitCommand = DxgkDdiSubmitCommand; 6359 DriverInitializationData.DxgkDdiPreemptCommand = DxgkDdiPreemptCommand; 6360 DriverInitializationData.DxgkDdiBuildPagingBuffer = DxgkDdiBuildPagingBuffer; 6361 DriverInitializationData.DxgkDdiSetPalette = DxgkDdiSetPalette; 6362 DriverInitializationData.DxgkDdiSetPointerPosition = DxgkDdiSetPointerPosition; 6363 DriverInitializationData.DxgkDdiSetPointerShape = DxgkDdiSetPointerShape; 6364 DriverInitializationData.DxgkDdiResetFromTimeout = DxgkDdiResetFromTimeout; 6365 DriverInitializationData.DxgkDdiRestartFromTimeout = DxgkDdiRestartFromTimeout; 6366 DriverInitializationData.DxgkDdiEscape = DxgkDdiEscape; 6367 DriverInitializationData.DxgkDdiCollectDbgInfo = DxgkDdiCollectDbgInfo; 6368 DriverInitializationData.DxgkDdiQueryCurrentFence = DxgkDdiQueryCurrentFence; 6369 DriverInitializationData.DxgkDdiIsSupportedVidPn = DxgkDdiIsSupportedVidPn; 6370 DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = DxgkDdiRecommendFunctionalVidPn; 6371 DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = DxgkDdiEnumVidPnCofuncModality; 6372 DriverInitializationData.DxgkDdiSetVidPnSourceAddress = DxgkDdiSetVidPnSourceAddress; 6373 DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility; 6374 DriverInitializationData.DxgkDdiCommitVidPn = DxgkDdiCommitVidPn; 6375 DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath; 6376 DriverInitializationData.DxgkDdiRecommendMonitorModes = DxgkDdiRecommendMonitorModes; 6377 DriverInitializationData.DxgkDdiRecommendVidPnTopology = DxgkDdiRecommendVidPnTopology; 6378 DriverInitializationData.DxgkDdiGetScanLine = DxgkDdiGetScanLine; 6379 DriverInitializationData.DxgkDdiStopCapture = DxgkDdiStopCapture; 6380 DriverInitializationData.DxgkDdiControlInterrupt = DxgkDdiControlInterrupt; 6381 DriverInitializationData.DxgkDdiCreateOverlay = DxgkDdiCreateOverlay; 6382 6383 DriverInitializationData.DxgkDdiDestroyDevice = DxgkDdiDestroyDevice; 6384 DriverInitializationData.DxgkDdiOpenAllocation = DxgkDdiOpenAllocation; 6385 DriverInitializationData.DxgkDdiCloseAllocation = DxgkDdiCloseAllocation; 6386 DriverInitializationData.DxgkDdiRender = DxgkDdiRender; 6387 DriverInitializationData.DxgkDdiPresent = DxgkDdiPresent; 6388 6389 DriverInitializationData.DxgkDdiUpdateOverlay = DxgkDdiUpdateOverlay; 6390 DriverInitializationData.DxgkDdiFlipOverlay = DxgkDdiFlipOverlay; 6391 DriverInitializationData.DxgkDdiDestroyOverlay = DxgkDdiDestroyOverlay; 6392 6393 DriverInitializationData.DxgkDdiCreateContext = DxgkDdiCreateContext; 6394 DriverInitializationData.DxgkDdiDestroyContext = DxgkDdiDestroyContext; 6395 6396 DriverInitializationData.DxgkDdiLinkDevice = NULL; //DxgkDdiLinkDevice; 6397 DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat = DxgkDdiSetDisplayPrivateDriverFormat; 6398 //#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) 6399 //# error port to Win7 DDI 6400 // DriverInitializationData.DxgkDdiRenderKm = DxgkDdiRenderKm; 6401 // DriverInitializationData.DxgkDdiRestartFromTimeout = DxgkDdiRestartFromTimeout; 6402 // DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility; 6403 // DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath; 6404 // DriverInitializationData.DxgkDdiQueryVidPnHWCapability = DxgkDdiQueryVidPnHWCapability; 6405 //#endif 6406 6407 NTSTATUS Status = DxgkInitialize(pDriverObject, 6408 pRegistryPath, 6409 &DriverInitializationData); 6410 if (!NT_SUCCESS(Status)) 6411 { 6412 WARN(("DxgkInitialize failed! Status 0x%x", Status)); 6413 } 6414 return Status; 6415 } 6416 6136 6417 NTSTATUS 6137 6418 DriverEntry( … … 6181 6462 f3Drequired = TRUE; 6182 6463 } 6464 #ifndef VBOX_WDDM_WIN8 6183 6465 else if (minor == 2) 6184 6466 { … … 6186 6468 f3Drequired = TRUE; 6187 6469 } 6470 #endif 6188 6471 else 6189 6472 { … … 6215 6498 if (NT_SUCCESS(Status)) 6216 6499 { 6217 DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'}; 6218 6219 // Fill in the DriverInitializationData structure and call DxgkInitialize() 6220 DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION; 6221 6222 DriverInitializationData.DxgkDdiAddDevice = DxgkDdiAddDevice; 6223 DriverInitializationData.DxgkDdiStartDevice = DxgkDdiStartDevice; 6224 DriverInitializationData.DxgkDdiStopDevice = DxgkDdiStopDevice; 6225 DriverInitializationData.DxgkDdiRemoveDevice = DxgkDdiRemoveDevice; 6226 DriverInitializationData.DxgkDdiDispatchIoRequest = DxgkDdiDispatchIoRequest; 6227 DriverInitializationData.DxgkDdiInterruptRoutine = DxgkDdiInterruptRoutine; 6228 DriverInitializationData.DxgkDdiDpcRoutine = DxgkDdiDpcRoutine; 6229 DriverInitializationData.DxgkDdiQueryChildRelations = DxgkDdiQueryChildRelations; 6230 DriverInitializationData.DxgkDdiQueryChildStatus = DxgkDdiQueryChildStatus; 6231 DriverInitializationData.DxgkDdiQueryDeviceDescriptor = DxgkDdiQueryDeviceDescriptor; 6232 DriverInitializationData.DxgkDdiSetPowerState = DxgkDdiSetPowerState; 6233 DriverInitializationData.DxgkDdiNotifyAcpiEvent = DxgkDdiNotifyAcpiEvent; 6234 DriverInitializationData.DxgkDdiResetDevice = DxgkDdiResetDevice; 6235 DriverInitializationData.DxgkDdiUnload = DxgkDdiUnload; 6236 DriverInitializationData.DxgkDdiQueryInterface = DxgkDdiQueryInterface; 6237 DriverInitializationData.DxgkDdiControlEtwLogging = DxgkDdiControlEtwLogging; 6238 6239 DriverInitializationData.DxgkDdiQueryAdapterInfo = DxgkDdiQueryAdapterInfo; 6240 DriverInitializationData.DxgkDdiCreateDevice = DxgkDdiCreateDevice; 6241 DriverInitializationData.DxgkDdiCreateAllocation = DxgkDdiCreateAllocation; 6242 DriverInitializationData.DxgkDdiDestroyAllocation = DxgkDdiDestroyAllocation; 6243 DriverInitializationData.DxgkDdiDescribeAllocation = DxgkDdiDescribeAllocation; 6244 DriverInitializationData.DxgkDdiGetStandardAllocationDriverData = DxgkDdiGetStandardAllocationDriverData; 6245 DriverInitializationData.DxgkDdiAcquireSwizzlingRange = DxgkDdiAcquireSwizzlingRange; 6246 DriverInitializationData.DxgkDdiReleaseSwizzlingRange = DxgkDdiReleaseSwizzlingRange; 6247 DriverInitializationData.DxgkDdiPatch = DxgkDdiPatch; 6248 DriverInitializationData.DxgkDdiSubmitCommand = DxgkDdiSubmitCommand; 6249 DriverInitializationData.DxgkDdiPreemptCommand = DxgkDdiPreemptCommand; 6250 DriverInitializationData.DxgkDdiBuildPagingBuffer = DxgkDdiBuildPagingBuffer; 6251 DriverInitializationData.DxgkDdiSetPalette = DxgkDdiSetPalette; 6252 DriverInitializationData.DxgkDdiSetPointerPosition = DxgkDdiSetPointerPosition; 6253 DriverInitializationData.DxgkDdiSetPointerShape = DxgkDdiSetPointerShape; 6254 DriverInitializationData.DxgkDdiResetFromTimeout = DxgkDdiResetFromTimeout; 6255 DriverInitializationData.DxgkDdiRestartFromTimeout = DxgkDdiRestartFromTimeout; 6256 DriverInitializationData.DxgkDdiEscape = DxgkDdiEscape; 6257 DriverInitializationData.DxgkDdiCollectDbgInfo = DxgkDdiCollectDbgInfo; 6258 DriverInitializationData.DxgkDdiQueryCurrentFence = DxgkDdiQueryCurrentFence; 6259 DriverInitializationData.DxgkDdiIsSupportedVidPn = DxgkDdiIsSupportedVidPn; 6260 DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = DxgkDdiRecommendFunctionalVidPn; 6261 DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = DxgkDdiEnumVidPnCofuncModality; 6262 DriverInitializationData.DxgkDdiSetVidPnSourceAddress = DxgkDdiSetVidPnSourceAddress; 6263 DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility; 6264 DriverInitializationData.DxgkDdiCommitVidPn = DxgkDdiCommitVidPn; 6265 DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath; 6266 DriverInitializationData.DxgkDdiRecommendMonitorModes = DxgkDdiRecommendMonitorModes; 6267 DriverInitializationData.DxgkDdiRecommendVidPnTopology = DxgkDdiRecommendVidPnTopology; 6268 DriverInitializationData.DxgkDdiGetScanLine = DxgkDdiGetScanLine; 6269 DriverInitializationData.DxgkDdiStopCapture = DxgkDdiStopCapture; 6270 DriverInitializationData.DxgkDdiControlInterrupt = DxgkDdiControlInterrupt; 6271 DriverInitializationData.DxgkDdiCreateOverlay = DxgkDdiCreateOverlay; 6272 6273 DriverInitializationData.DxgkDdiDestroyDevice = DxgkDdiDestroyDevice; 6274 DriverInitializationData.DxgkDdiOpenAllocation = DxgkDdiOpenAllocation; 6275 DriverInitializationData.DxgkDdiCloseAllocation = DxgkDdiCloseAllocation; 6276 DriverInitializationData.DxgkDdiRender = DxgkDdiRender; 6277 DriverInitializationData.DxgkDdiPresent = DxgkDdiPresent; 6278 6279 DriverInitializationData.DxgkDdiUpdateOverlay = DxgkDdiUpdateOverlay; 6280 DriverInitializationData.DxgkDdiFlipOverlay = DxgkDdiFlipOverlay; 6281 DriverInitializationData.DxgkDdiDestroyOverlay = DxgkDdiDestroyOverlay; 6282 6283 DriverInitializationData.DxgkDdiCreateContext = DxgkDdiCreateContext; 6284 DriverInitializationData.DxgkDdiDestroyContext = DxgkDdiDestroyContext; 6285 6286 DriverInitializationData.DxgkDdiLinkDevice = NULL; //DxgkDdiLinkDevice; 6287 DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat = DxgkDdiSetDisplayPrivateDriverFormat; 6288 //#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7) 6289 //# error port to Win7 DDI 6290 // DriverInitializationData.DxgkDdiRenderKm = DxgkDdiRenderKm; 6291 // DriverInitializationData.DxgkDdiRestartFromTimeout = DxgkDdiRestartFromTimeout; 6292 // DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility; 6293 // DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath; 6294 // DriverInitializationData.DxgkDdiQueryVidPnHWCapability = DxgkDdiQueryVidPnHWCapability; 6295 //#endif 6296 6297 Status = DxgkInitialize(DriverObject, 6298 RegistryPath, 6299 &DriverInitializationData); 6500 #ifdef VBOX_WDDM_WIN8 6501 Status = vboxWddmInitDisplayOnlyDriver(DriverObject, RegistryPath); 6502 #else 6503 Status = vboxWddmInitFullGraphicsDriver(DriverObject, RegistryPath); 6504 #endif 6300 6505 if (NT_SUCCESS(Status)) 6301 6506 return Status; 6507 6302 6508 VBoxWddmVrTerm(); 6303 6509 }
Note:
See TracChangeset
for help on using the changeset viewer.