VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Video/mp/wddm/VBoxMPCm.h@ 42091

Last change on this file since 42091 was 38112, checked in by vboxsync, 13 years ago

wddm/3d: 1. fix invalid visible rectreporting on swapchain destruction 2. single context for wine (disabled so far), 3 wine & 3d driver bugfixes

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.5 KB
Line 
1/* $Id: VBoxMPCm.h 38112 2011-07-22 13:26:19Z vboxsync $ */
2
3/** @file
4 * VBox WDDM Miniport driver
5 */
6
7/*
8 * Copyright (C) 2011 Oracle Corporation
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 */
18
19#ifndef ___VBoxMPCm_h___
20#define ___VBoxMPCm_h___
21
22typedef struct VBOXVIDEOCM_MGR
23{
24 KEVENT SynchEvent;
25 /* session list */
26 LIST_ENTRY SessionList;
27} VBOXVIDEOCM_MGR, *PVBOXVIDEOCM_MGR;
28
29typedef struct VBOXVIDEOCM_CTX
30{
31 LIST_ENTRY SessionEntry;
32 struct VBOXVIDEOCM_SESSION *pSession;
33 uint64_t u64UmData;
34 VBOXWDDM_HTABLE AllocTable;
35} VBOXVIDEOCM_CTX, *PVBOXVIDEOCM_CTX;
36
37void vboxVideoCmCtxInitEmpty(PVBOXVIDEOCM_CTX pContext);
38
39NTSTATUS vboxVideoCmCtxAdd(PVBOXVIDEOCM_MGR pMgr, PVBOXVIDEOCM_CTX pContext, HANDLE hUmEvent, uint64_t u64UmData);
40NTSTATUS vboxVideoCmCtxRemove(PVBOXVIDEOCM_MGR pMgr, PVBOXVIDEOCM_CTX pContext);
41NTSTATUS vboxVideoCmInit(PVBOXVIDEOCM_MGR pMgr);
42NTSTATUS vboxVideoCmTerm(PVBOXVIDEOCM_MGR pMgr);
43
44NTSTATUS vboxVideoCmCmdSubmitCompleteEvent(PVBOXVIDEOCM_CTX pContext, PKEVENT pEvent);
45void* vboxVideoCmCmdCreate(PVBOXVIDEOCM_CTX pContext, uint32_t cbSize);
46void* vboxVideoCmCmdReinitForContext(void *pvCmd, PVBOXVIDEOCM_CTX pContext);
47void vboxVideoCmCmdRetain(void *pvCmd);
48void vboxVideoCmCmdRelease(void *pvCmd);
49#define VBOXVIDEOCM_SUBMITSIZE_DEFAULT (~0UL)
50void vboxVideoCmCmdSubmit(void *pvCmd, uint32_t cbSize);
51
52#define VBOXVIDEOCMCMDVISITOR_RETURN_BREAK 0x00000001
53#define VBOXVIDEOCMCMDVISITOR_RETURN_RMCMD 0x00000002
54typedef DECLCALLBACK(UINT) FNVBOXVIDEOCMCMDVISITOR(PVBOXVIDEOCM_CTX pContext, PVOID pvCmd, uint32_t cbCmd, PVOID pvVisitor);
55typedef FNVBOXVIDEOCMCMDVISITOR *PFNVBOXVIDEOCMCMDVISITOR;
56NTSTATUS vboxVideoCmCmdVisit(PVBOXVIDEOCM_CTX pContext, BOOLEAN bEntireSession, PFNVBOXVIDEOCMCMDVISITOR pfnVisitor, PVOID pvVisitor);
57
58NTSTATUS vboxVideoCmEscape(PVBOXVIDEOCM_CTX pContext, PVBOXDISPIFESCAPE_GETVBOXVIDEOCMCMD pCmd, uint32_t cbCmd);
59
60NTSTATUS vboxVideoCmWaitCompletedCmds(PVBOXVIDEOCM_MGR pMgr, uint32_t msTimeout);
61
62VOID vboxVideoCmLock(PVBOXVIDEOCM_CTX pContext);
63VOID vboxVideoCmUnlock(PVBOXVIDEOCM_CTX pContext);
64
65#endif /* #ifndef ___VBoxMPCm_h___ */
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