VirtualBox

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

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

wddm/3d: 1.fix ie9 under Aero (still some problems w/o Aero), 2.Fix the driver crash

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/* $Id: VBoxMPCm.h 37734 2011-07-01 16:36:39Z 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
44void* vboxVideoCmCmdCreate(PVBOXVIDEOCM_CTX pContext, uint32_t cbSize);
45void* vboxVideoCmCmdReinitForContext(void *pvCmd, PVBOXVIDEOCM_CTX pContext);
46void vboxVideoCmCmdRetain(void *pvCmd);
47void vboxVideoCmCmdRelease(void *pvCmd);
48#define VBOXVIDEOCM_SUBMITSIZE_DEFAULT (~0UL)
49void vboxVideoCmCmdSubmit(void *pvCmd, uint32_t cbSize);
50
51#define VBOXVIDEOCMCMDVISITOR_RETURN_CONTINUE 0x00000001
52#define VBOXVIDEOCMCMDVISITOR_RETURN_RMCMD 0x00000002
53typedef DECLCALLBACK(UINT) FNVBOXVIDEOCMCMDVISITOR(PVBOXVIDEOCM_CTX pContext, PVOID pvCmd, uint32_t cbCmd, PVOID pvVisitor);
54typedef FNVBOXVIDEOCMCMDVISITOR *PFNVBOXVIDEOCMCMDVISITOR;
55NTSTATUS vboxVideoCmCmdVisit(PVBOXVIDEOCM_CTX pContext, BOOL bEntireSession, PFNVBOXVIDEOCMCMDVISITOR pfnVisitor, PVOID pvVisitor);
56
57NTSTATUS vboxVideoCmEscape(PVBOXVIDEOCM_CTX pContext, PVBOXDISPIFESCAPE_GETVBOXVIDEOCMCMD pCmd, uint32_t cbCmd);
58
59NTSTATUS vboxVideoCmWaitCompletedCmds(PVBOXVIDEOCM_MGR pMgr, uint32_t msTimeout);
60
61VOID vboxVideoCmLock(PVBOXVIDEOCM_CTX pContext);
62VOID vboxVideoCmUnlock(PVBOXVIDEOCM_CTX pContext);
63
64#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