VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp@ 25982

Last change on this file since 25982 was 25982, checked in by vboxsync, 15 years ago

wddm: export to OSE

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 18.8 KB
Line 
1/*
2 * Copyright (C) 2010 Sun Microsystems, Inc.
3 *
4 * This file is part of VirtualBox Open Source Edition (OSE), as
5 * available from http://www.virtualbox.org. This file is free software;
6 * you can redistribute it and/or modify it under the terms of the GNU
7 * General Public License (GPL) as published by the Free Software
8 * Foundation, in version 2 as it comes in the "COPYING" file of the
9 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
10 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
11 *
12 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
13 * Clara, CA 95054 USA or visit http://www.sun.com if you need
14 * additional information or have any questions.
15 */
16
17#include "../VBoxVideo.h"
18
19#define VBOXWDDM_MEMTAG 'MDBV'
20PVOID vboxWddmMemAlloc(IN SIZE_T cbSize)
21{
22 return ExAllocatePoolWithTag(NonPagedPool, cbSize, VBOXWDDM_MEMTAG);
23}
24
25PVOID vboxWddmMemAllocZero(IN SIZE_T cbSize)
26{
27 PVOID pvMem = vboxWddmMemAlloc(cbSize);
28 memset(pvMem, 0, cbSize);
29 return pvMem;
30}
31
32
33VOID vboxWddmMemFree(PVOID pvMem)
34{
35 ExFreePool(pvMem);
36}
37
38/* driver callbacks */
39
40NTSTATUS DxgkDdiAddDevice(
41 IN CONST PDEVICE_OBJECT PhysicalDeviceObject,
42 OUT PVOID *MiniportDeviceContext
43 )
44{
45 PAGED_CODE();
46 NTSTATUS Status = STATUS_UNSUCCESSFUL;
47
48 PDEVICE_EXTENSION pContext = (PDEVICE_EXTENSION)vboxWddmMemAllocZero(sizeof(DEVICE_EXTENSION));
49 if(pContext)
50 {
51 char guessBuffer[128];
52 PVOID pvBuf = guessBuffer;
53 ULONG cbBuf = sizeof(guessBuffer);
54 ULONG cbBufUsed = 0;
55 bool bFreeBuf = false;
56
57 do
58 {
59 Status = IoGetDeviceProperty(PhysicalDeviceObject,
60 DevicePropertyBootConfigurationTranslated,
61 cbBuf,
62 pvBuf,
63 &cbBufUsed);
64 if(Status == STATUS_BUFFER_TOO_SMALL)
65 {
66 if(bFreeBuf)
67 vboxWddmMemFree(pvBuf);
68
69 pvBuf = vboxWddmMemAlloc(cbBufUsed);
70 cbBuf = cbBufUsed;
71 bFreeBuf = true;
72 }
73 else
74 {
75 break;
76 }
77 } while(true);
78
79 if(Status == STATUS_SUCCESS)
80 {
81 PCM_RESOURCE_LIST pRcList = (PCM_RESOURCE_LIST)pvBuf;
82 for(ULONG i = 0; i < pRcList->Count; ++i)
83 {
84 PCM_FULL_RESOURCE_DESCRIPTOR pFRc = &pRcList->List[i];
85 for(ULONG j = 0; j < pFRc->PartialResourceList.Count; ++j)
86 {
87 PCM_PARTIAL_RESOURCE_DESCRIPTOR pPRc = &pFRc->PartialResourceList.PartialDescriptors[j];
88 switch(pPRc->Type)
89 {
90 case CmResourceTypePort:
91
92 break;
93 case CmResourceTypeInterrupt:
94 break;
95 case CmResourceTypeMemory:
96 break;
97 case CmResourceTypeDma:
98 break;
99 case CmResourceTypeDeviceSpecific:
100 break;
101 case CmResourceTypeBusNumber:
102 break;
103 default:
104 break;
105 }
106 }
107 }
108
109 if(bFreeBuf)
110 vboxWddmMemFree(pvBuf);
111
112 *MiniportDeviceContext = pContext;
113 return STATUS_SUCCESS;
114 }
115
116 if(bFreeBuf)
117 vboxWddmMemFree(pvBuf);
118
119 vboxWddmMemFree(pContext);
120 }
121 else
122 {
123 Status = STATUS_INSUFFICIENT_RESOURCES;
124 }
125
126 return Status;
127}
128
129NTSTATUS DxgkDdiStartDevice(
130 IN CONST PVOID MiniportDeviceContext,
131 IN PDXGK_START_INFO DxgkStartInfo,
132 IN PDXGKRNL_INTERFACE DxgkInterface,
133 OUT PULONG NumberOfVideoPresentSources,
134 OUT PULONG NumberOfChildren
135 )
136{
137 return STATUS_NOT_IMPLEMENTED;
138}
139
140NTSTATUS DxgkDdiStopDevice(
141 IN CONST PVOID MiniportDeviceContext
142 )
143{
144 return STATUS_NOT_IMPLEMENTED;
145}
146
147NTSTATUS DxgkDdiRemoveDevice(
148 IN CONST PVOID MiniportDeviceContext
149 )
150{
151 return STATUS_NOT_IMPLEMENTED;
152}
153
154NTSTATUS DxgkDdiDispatchIoRequest(
155 IN CONST PVOID MiniportDeviceContext,
156 IN ULONG VidPnSourceId,
157 IN PVIDEO_REQUEST_PACKET VideoRequestPacket
158 )
159{
160 return STATUS_NOT_IMPLEMENTED;
161}
162
163BOOLEAN DxgkDdiInterruptRoutine(
164 IN CONST PVOID MiniportDeviceContext,
165 IN ULONG MessageNumber
166 )
167{
168 return false;
169}
170
171VOID DxgkDdiDpcRoutine(
172 IN CONST PVOID MiniportDeviceContext
173 )
174{
175
176}
177
178NTSTATUS DxgkDdiQueryChildRelations(
179 IN CONST PVOID MiniportDeviceContext,
180 IN OUT PDXGK_CHILD_DESCRIPTOR ChildRelations,
181 IN ULONG ChildRelationsSize
182 )
183{
184 return STATUS_NOT_IMPLEMENTED;
185}
186
187NTSTATUS DxgkDdiQueryChildStatus(
188 IN CONST PVOID MiniportDeviceContext,
189 IN PDXGK_CHILD_STATUS ChildStatus,
190 IN BOOLEAN NonDestructiveOnly
191 )
192{
193 return STATUS_NOT_IMPLEMENTED;
194}
195
196NTSTATUS DxgkDdiQueryDeviceDescriptor(
197 IN CONST PVOID MiniportDeviceContext,
198 IN ULONG ChildUid,
199 IN OUT PDXGK_DEVICE_DESCRIPTOR DeviceDescriptor
200 )
201{
202 return STATUS_NOT_IMPLEMENTED;
203}
204
205NTSTATUS DxgkDdiSetPowerState(
206 IN CONST PVOID MiniportDeviceContext,
207 IN ULONG DeviceUid,
208 IN DEVICE_POWER_STATE DevicePowerState,
209 IN POWER_ACTION ActionType
210 )
211{
212 return STATUS_NOT_IMPLEMENTED;
213}
214
215NTSTATUS DxgkDdiNotifyAcpiEvent(
216 IN CONST PVOID MiniportDeviceContext,
217 IN DXGK_EVENT_TYPE EventType,
218 IN ULONG Event,
219 IN PVOID Argument,
220 OUT PULONG AcpiFlags
221 )
222{
223 return STATUS_NOT_IMPLEMENTED;
224}
225
226VOID DxgkDdiResetDevice(
227 IN CONST PVOID MiniportDeviceContext
228 )
229{
230
231}
232
233
234VOID DxgkDdiUnload(
235 VOID
236 )
237{
238
239}
240
241NTSTATUS DxgkDdiQueryInterface(
242 IN CONST PVOID MiniportDeviceContext,
243 IN PQUERY_INTERFACE QueryInterface
244 )
245{
246 return STATUS_NOT_IMPLEMENTED;
247}
248
249VOID DxgkDdiControlEtwLogging(
250 IN BOOLEAN Enable,
251 IN ULONG Flags,
252 IN UCHAR Level
253 )
254{
255
256}
257
258NTSTATUS APIENTRY DxgkDdiQueryAdapterInfo(
259 CONST HANDLE hAdapter,
260 CONST DXGKARG_QUERYADAPTERINFO* pQueryAdapterInfo)
261{
262 return STATUS_NOT_IMPLEMENTED;
263}
264
265NTSTATUS APIENTRY DxgkDdiCreateDevice(
266 CONST HANDLE hAdapter,
267 DXGKARG_CREATEDEVICE* pCreateDevice)
268{
269 return STATUS_NOT_IMPLEMENTED;
270}
271
272NTSTATUS APIENTRY DxgkDdiCreateAllocation(
273 CONST HANDLE hAdapter,
274 DXGKARG_CREATEALLOCATION* pCreateAllocation)
275{
276 return STATUS_NOT_IMPLEMENTED;
277}
278
279NTSTATUS
280APIENTRY
281DxgkDdiDestroyAllocation(
282 CONST HANDLE hAdapter,
283 CONST DXGKARG_DESTROYALLOCATION* pDestroyAllocation)
284{
285 return STATUS_NOT_IMPLEMENTED;
286}
287
288
289NTSTATUS
290APIENTRY
291DxgkDdiDescribeAllocation(
292 CONST HANDLE hAdapter,
293 DXGKARG_DESCRIBEALLOCATION* pDescribeAllocation)
294{
295 return STATUS_NOT_IMPLEMENTED;
296}
297
298NTSTATUS
299APIENTRY
300DxgkDdiGetStandardAllocationDriverData(
301 CONST HANDLE hAdapter,
302 DXGKARG_GETSTANDARDALLOCATIONDRIVERDATA* pGetStandardAllocationDriverData)
303{
304 return STATUS_NOT_IMPLEMENTED;
305}
306
307NTSTATUS
308APIENTRY
309DxgkDdiAcquireSwizzlingRange(
310 CONST HANDLE hAdapter,
311 DXGKARG_ACQUIRESWIZZLINGRANGE* pAcquireSwizzlingRange)
312{
313 return STATUS_NOT_IMPLEMENTED;
314}
315
316NTSTATUS
317APIENTRY
318DxgkDdiReleaseSwizzlingRange(
319 CONST HANDLE hAdapter,
320 CONST DXGKARG_RELEASESWIZZLINGRANGE* pReleaseSwizzlingRange)
321{
322 return STATUS_NOT_IMPLEMENTED;
323}
324
325NTSTATUS
326APIENTRY
327DxgkDdiPatch(
328 CONST HANDLE hAdapter,
329 CONST DXGKARG_PATCH* pPatch)
330{
331 return STATUS_NOT_IMPLEMENTED;
332}
333
334NTSTATUS
335APIENTRY
336DxgkDdiSubmitCommand(
337 CONST HANDLE hAdapter,
338 CONST DXGKARG_SUBMITCOMMAND* pSubmitCommand)
339{
340 return STATUS_NOT_IMPLEMENTED;
341}
342
343NTSTATUS
344APIENTRY
345DxgkDdiPreemptCommand(
346 CONST HANDLE hAdapter,
347 CONST DXGKARG_PREEMPTCOMMAND* pPreemptCommand)
348{
349 return STATUS_NOT_IMPLEMENTED;
350}
351
352NTSTATUS
353APIENTRY
354DxgkDdiBuildPagingBuffer(
355 CONST HANDLE hAdapter,
356 DXGKARG_BUILDPAGINGBUFFER* pBuildPagingBuffer)
357{
358 return STATUS_NOT_IMPLEMENTED;
359}
360
361NTSTATUS
362APIENTRY
363DxgkDdiSetPalette(
364 CONST HANDLE hAdapter,
365 CONST DXGKARG_SETPALETTE* pSetPalette
366 )
367{
368 return STATUS_NOT_IMPLEMENTED;
369}
370
371NTSTATUS
372APIENTRY
373DxgkDdiSetPointerPosition(
374 CONST HANDLE hAdapter,
375 CONST DXGKARG_SETPOINTERPOSITION* pSetPointerPosition)
376{
377 return STATUS_NOT_IMPLEMENTED;
378}
379
380NTSTATUS
381APIENTRY
382DxgkDdiSetPointerShape(
383 CONST HANDLE hAdapter,
384 CONST DXGKARG_SETPOINTERSHAPE* pSetPointerShape)
385{
386 return STATUS_NOT_IMPLEMENTED;
387}
388
389NTSTATUS
390APIENTRY CALLBACK
391DxgkDdiResetFromTimeout(
392 CONST HANDLE hAdapter)
393{
394 return STATUS_NOT_IMPLEMENTED;
395}
396
397NTSTATUS
398APIENTRY
399DxgkDdiEscape(
400 CONST HANDLE hAdapter,
401 CONST DXGKARG_ESCAPE* pEscape)
402{
403 PAGED_CODE();
404
405 return STATUS_INVALID_PARAMETER;
406}
407
408NTSTATUS
409APIENTRY
410DxgkDdiCollectDbgInfo(
411 CONST HANDLE hAdapter,
412 CONST DXGKARG_COLLECTDBGINFO* pCollectDbgInfo
413 )
414{
415 return STATUS_NOT_IMPLEMENTED;
416}
417
418NTSTATUS
419APIENTRY
420DxgkDdiQueryCurrentFence(
421 CONST HANDLE hAdapter,
422 DXGKARG_QUERYCURRENTFENCE* pCurrentFence)
423{
424 return STATUS_NOT_IMPLEMENTED;
425}
426
427NTSTATUS
428APIENTRY
429DxgkDdiIsSupportedVidPn(
430 CONST HANDLE hAdapter,
431 OUT DXGKARG_ISSUPPORTEDVIDPN* pIsSupportedVidPnArg
432 )
433{
434 return STATUS_NOT_IMPLEMENTED;
435}
436
437NTSTATUS
438APIENTRY
439DxgkDdiRecommendFunctionalVidPn(
440 CONST HANDLE hAdapter,
441 CONST DXGKARG_RECOMMENDFUNCTIONALVIDPN* CONST pRecommendFunctionalVidPnArg
442 )
443{
444 return STATUS_NOT_IMPLEMENTED;
445}
446
447NTSTATUS
448APIENTRY
449DxgkDdiEnumVidPnCofuncModality(
450 CONST HANDLE hAdapter,
451 CONST DXGKARG_ENUMVIDPNCOFUNCMODALITY* CONST pEnumCofuncModalityArg
452 )
453{
454 return STATUS_NOT_IMPLEMENTED;
455}
456
457NTSTATUS
458APIENTRY
459DxgkDdiSetVidPnSourceAddress(
460 CONST HANDLE hAdapter,
461 CONST DXGKARG_SETVIDPNSOURCEADDRESS* pSetVidPnSourceAddress
462 )
463{
464 return STATUS_NOT_IMPLEMENTED;
465}
466
467NTSTATUS
468APIENTRY
469DxgkDdiSetVidPnSourceVisibility(
470 CONST HANDLE hAdapter,
471 CONST DXGKARG_SETVIDPNSOURCEVISIBILITY* pSetVidPnSourceVisibility
472 )
473{
474 return STATUS_NOT_IMPLEMENTED;
475}
476
477NTSTATUS
478APIENTRY
479DxgkDdiCommitVidPn(
480 CONST HANDLE hAdapter,
481 CONST DXGKARG_COMMITVIDPN* CONST pCommitVidPnArg
482 )
483{
484 return STATUS_NOT_IMPLEMENTED;
485}
486
487NTSTATUS
488APIENTRY
489DxgkDdiUpdateActiveVidPnPresentPath(
490 CONST HANDLE hAdapter,
491 CONST DXGKARG_UPDATEACTIVEVIDPNPRESENTPATH* CONST pUpdateActiveVidPnPresentPathArg
492 )
493{
494 return STATUS_NOT_IMPLEMENTED;
495}
496
497NTSTATUS
498APIENTRY
499DxgkDdiRecommendMonitorModes(
500 CONST HANDLE hAdapter,
501 CONST DXGKARG_RECOMMENDMONITORMODES* CONST pRecommendMonitorModesArg
502 )
503{
504 return STATUS_NOT_IMPLEMENTED;
505}
506
507NTSTATUS
508APIENTRY
509DxgkDdiRecommendVidPnTopology(
510 CONST HANDLE hAdapter,
511 CONST DXGKARG_RECOMMENDVIDPNTOPOLOGY* CONST pRecommendVidPnTopologyArg
512 )
513{
514 return STATUS_NOT_IMPLEMENTED;
515}
516
517NTSTATUS
518APIENTRY
519DxgkDdiGetScanLine(
520 CONST HANDLE hAdapter,
521 DXGKARG_GETSCANLINE* pGetScanLine)
522{
523 return STATUS_NOT_IMPLEMENTED;
524}
525
526NTSTATUS
527APIENTRY
528DxgkDdiStopCapture(
529 CONST HANDLE hAdapter,
530 CONST DXGKARG_STOPCAPTURE* pStopCapture)
531{
532 return STATUS_NOT_IMPLEMENTED;
533}
534
535NTSTATUS
536APIENTRY
537DxgkDdiControlInterrupt(
538 CONST HANDLE hAdapter,
539 CONST DXGK_INTERRUPT_TYPE InterruptType,
540 BOOLEAN Enable
541 )
542{
543 return STATUS_NOT_IMPLEMENTED;
544}
545
546NTSTATUS
547APIENTRY
548DxgkDdiCreateOverlay(
549 CONST HANDLE hAdapter,
550 DXGKARG_CREATEOVERLAY *pCreateOverlay)
551{
552 return STATUS_NOT_IMPLEMENTED;
553}
554
555NTSTATUS
556APIENTRY
557DxgkDdiDestroyDevice(
558 CONST HANDLE hDevice)
559{
560 return STATUS_NOT_IMPLEMENTED;
561}
562
563NTSTATUS
564APIENTRY
565DxgkDdiOpenAllocation(
566 CONST HANDLE hDevice,
567 CONST DXGKARG_OPENALLOCATION *pOpenAllocation)
568{
569 return STATUS_NOT_IMPLEMENTED;
570}
571
572NTSTATUS
573APIENTRY
574DxgkDdiCloseAllocation(
575 CONST HANDLE hDevice,
576 CONST DXGKARG_CLOSEALLOCATION* pCloseAllocation)
577{
578 return STATUS_NOT_IMPLEMENTED;
579}
580
581NTSTATUS
582APIENTRY
583DxgkDdiRender(
584 CONST HANDLE hContext,
585 DXGKARG_RENDER *pRender)
586{
587 return STATUS_NOT_IMPLEMENTED;
588}
589
590NTSTATUS
591APIENTRY
592DxgkDdiPresent(
593 CONST HANDLE hContext,
594 DXGKARG_PRESENT *pPresent)
595{
596 return STATUS_NOT_IMPLEMENTED;
597}
598
599NTSTATUS
600APIENTRY
601DxgkDdiUpdateOverlay(
602 CONST HANDLE hOverlay,
603 CONST DXGKARG_UPDATEOVERLAY *pUpdateOverlay)
604{
605 return STATUS_NOT_IMPLEMENTED;
606}
607
608NTSTATUS
609APIENTRY
610DxgkDdiFlipOverlay(
611 CONST HANDLE hOverlay,
612 CONST DXGKARG_FLIPOVERLAY *pFlipOverlay)
613{
614 return STATUS_NOT_IMPLEMENTED;
615}
616
617NTSTATUS
618APIENTRY
619DxgkDdiDestroyOverlay(
620 CONST HANDLE hOverlay)
621{
622 return STATUS_NOT_IMPLEMENTED;
623}
624
625NTSTATUS
626APIENTRY
627DxgkDdiCreateContext(
628 CONST HANDLE hDevice,
629 DXGKARG_CREATECONTEXT *pCreateContext)
630{
631 return STATUS_NOT_IMPLEMENTED;
632}
633
634NTSTATUS
635APIENTRY
636DxgkDdiDestroyContext(
637 CONST HANDLE hContext)
638{
639 return STATUS_NOT_IMPLEMENTED;
640}
641
642NTSTATUS
643APIENTRY
644DxgkDdiLinkDevice(
645 __in CONST PDEVICE_OBJECT PhysicalDeviceObject,
646 __in CONST PVOID MiniportDeviceContext,
647 __inout PLINKED_DEVICE LinkedDevice
648 )
649{
650 return STATUS_NOT_IMPLEMENTED;
651}
652
653NTSTATUS
654APIENTRY
655DxgkDdiSetDisplayPrivateDriverFormat(
656 CONST HANDLE hAdapter,
657 /*CONST*/ DXGKARG_SETDISPLAYPRIVATEDRIVERFORMAT* pSetDisplayPrivateDriverFormat
658 )
659{
660 return STATUS_NOT_IMPLEMENTED;
661}
662
663NTSTATUS
664DriverEntry(
665 IN PDRIVER_OBJECT DriverObject,
666 IN PUNICODE_STRING RegistryPath
667 )
668{
669 DRIVER_INITIALIZATION_DATA DriverInitializationData = {'\0'};
670
671 PAGED_CODE();
672
673 if (! ARGUMENT_PRESENT(DriverObject) ||
674 ! ARGUMENT_PRESENT(RegistryPath))
675 {
676 return STATUS_INVALID_PARAMETER;
677 }
678
679 // Fill in the DriverInitializationData structure and call DxgkInitialize()
680 DriverInitializationData.Version = DXGKDDI_INTERFACE_VERSION;
681
682 DriverInitializationData.DxgkDdiAddDevice = DxgkDdiAddDevice;
683 DriverInitializationData.DxgkDdiStartDevice = DxgkDdiStartDevice;
684 DriverInitializationData.DxgkDdiStopDevice = DxgkDdiStopDevice;
685 DriverInitializationData.DxgkDdiRemoveDevice = DxgkDdiRemoveDevice;
686 DriverInitializationData.DxgkDdiDispatchIoRequest = DxgkDdiDispatchIoRequest;
687 DriverInitializationData.DxgkDdiInterruptRoutine = DxgkDdiInterruptRoutine;
688 DriverInitializationData.DxgkDdiDpcRoutine = DxgkDdiDpcRoutine;
689 DriverInitializationData.DxgkDdiQueryChildRelations = DxgkDdiQueryChildRelations;
690 DriverInitializationData.DxgkDdiQueryChildStatus = DxgkDdiQueryChildStatus;
691 DriverInitializationData.DxgkDdiQueryDeviceDescriptor = DxgkDdiQueryDeviceDescriptor;
692 DriverInitializationData.DxgkDdiSetPowerState = DxgkDdiSetPowerState;
693 DriverInitializationData.DxgkDdiNotifyAcpiEvent = DxgkDdiNotifyAcpiEvent;
694 DriverInitializationData.DxgkDdiResetDevice = DxgkDdiResetDevice;
695 DriverInitializationData.DxgkDdiUnload = DxgkDdiUnload;
696 DriverInitializationData.DxgkDdiQueryInterface = DxgkDdiQueryInterface;
697 DriverInitializationData.DxgkDdiControlEtwLogging = DxgkDdiControlEtwLogging;
698
699 DriverInitializationData.DxgkDdiQueryAdapterInfo = DxgkDdiQueryAdapterInfo;
700 DriverInitializationData.DxgkDdiCreateDevice = DxgkDdiCreateDevice;
701 DriverInitializationData.DxgkDdiCreateAllocation = DxgkDdiCreateAllocation;
702 DriverInitializationData.DxgkDdiDestroyAllocation = DxgkDdiDestroyAllocation ;
703
704 DriverInitializationData.DxgkDdiDescribeAllocation = DxgkDdiDescribeAllocation;
705 DriverInitializationData.DxgkDdiGetStandardAllocationDriverData = DxgkDdiGetStandardAllocationDriverData;
706
707 DriverInitializationData.DxgkDdiAcquireSwizzlingRange = DxgkDdiAcquireSwizzlingRange;
708 DriverInitializationData.DxgkDdiReleaseSwizzlingRange = DxgkDdiReleaseSwizzlingRange;
709
710 DriverInitializationData.DxgkDdiPatch = DxgkDdiPatch;
711
712 DriverInitializationData.DxgkDdiSubmitCommand = DxgkDdiSubmitCommand;
713 DriverInitializationData.DxgkDdiPreemptCommand = DxgkDdiPreemptCommand;
714 DriverInitializationData.DxgkDdiBuildPagingBuffer = DxgkDdiBuildPagingBuffer;
715
716 DriverInitializationData.DxgkDdiSetPalette = DxgkDdiSetPalette;
717 DriverInitializationData.DxgkDdiSetPointerPosition = DxgkDdiSetPointerPosition;
718 DriverInitializationData.DxgkDdiSetPointerShape = DxgkDdiSetPointerShape;
719
720 DriverInitializationData.DxgkDdiResetFromTimeout = DxgkDdiResetFromTimeout;
721
722 DriverInitializationData.DxgkDdiEscape = DxgkDdiEscape;
723
724 DriverInitializationData.DxgkDdiCollectDbgInfo = DxgkDdiCollectDbgInfo;
725
726 DriverInitializationData.DxgkDdiQueryCurrentFence = DxgkDdiQueryCurrentFence;
727
728 DriverInitializationData.DxgkDdiIsSupportedVidPn = DxgkDdiIsSupportedVidPn;
729 DriverInitializationData.DxgkDdiRecommendFunctionalVidPn = DxgkDdiRecommendFunctionalVidPn;
730 DriverInitializationData.DxgkDdiEnumVidPnCofuncModality = DxgkDdiEnumVidPnCofuncModality;
731 DriverInitializationData.DxgkDdiSetVidPnSourceAddress = DxgkDdiSetVidPnSourceAddress;
732 DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility;
733 DriverInitializationData.DxgkDdiCommitVidPn = DxgkDdiCommitVidPn;
734 DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = DxgkDdiUpdateActiveVidPnPresentPath;
735
736 DriverInitializationData.DxgkDdiRecommendMonitorModes = DxgkDdiRecommendMonitorModes;
737 DriverInitializationData.DxgkDdiRecommendVidPnTopology = DxgkDdiRecommendVidPnTopology;
738
739 DriverInitializationData.DxgkDdiGetScanLine = DxgkDdiGetScanLine;
740
741 DriverInitializationData.DxgkDdiStopCapture = DxgkDdiStopCapture;
742
743 DriverInitializationData.DxgkDdiControlInterrupt = DxgkDdiControlInterrupt;
744
745 DriverInitializationData.DxgkDdiCreateOverlay = DxgkDdiCreateOverlay;
746
747 DriverInitializationData.DxgkDdiDestroyDevice = DxgkDdiDestroyDevice;
748
749 DriverInitializationData.DxgkDdiOpenAllocation = DxgkDdiOpenAllocation;
750 DriverInitializationData.DxgkDdiCloseAllocation = DxgkDdiCloseAllocation;
751
752 DriverInitializationData.DxgkDdiRender = DxgkDdiRender;
753 DriverInitializationData.DxgkDdiPresent = DxgkDdiPresent;
754
755 DriverInitializationData.DxgkDdiUpdateOverlay = DxgkDdiUpdateOverlay;
756 DriverInitializationData.DxgkDdiFlipOverlay = DxgkDdiFlipOverlay;
757 DriverInitializationData.DxgkDdiDestroyOverlay = DxgkDdiDestroyOverlay;
758
759 DriverInitializationData.DxgkDdiCreateContext = DxgkDdiCreateContext;
760 DriverInitializationData.DxgkDdiDestroyContext = DxgkDdiDestroyContext;
761
762 DriverInitializationData.DxgkDdiLinkDevice = DxgkDdiLinkDevice;
763 DriverInitializationData.DxgkDdiSetDisplayPrivateDriverFormat = DxgkDdiSetDisplayPrivateDriverFormat;
764
765//#if (DXGKDDI_INTERFACE_VERSION >= DXGKDDI_INTERFACE_VERSION_WIN7)
766// DriverInitializationData.DxgkDdiRenderKm = D3DDDIRenderKm;
767// DriverInitializationData.DxgkDdiRestartFromTimeout = D3DDDIRestartFromTimeout;
768// DriverInitializationData.DxgkDdiSetVidPnSourceVisibility = DxgkDdiSetVidPnSourceVisibility;
769// DriverInitializationData.DxgkDdiUpdateActiveVidPnPresentPath = D3DDDIUpdateActiveVidPnPresentPath;
770// DriverInitializationData.DxgkDdiQueryVidPnHWCapability = D3DDDI DxgkDdiQueryVidPnHWCapability;
771//#endif
772
773 return DxgkInitialize(DriverObject,
774 RegistryPath,
775 &DriverInitializationData);
776}
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette