VirtualBox

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

Last change on this file since 48070 was 48070, checked in by vboxsync, 11 years ago

wddm,vboxtray: forward-port autoresize, multimon, and seamless fixes from 4.2 r87071, r87353, r87356, r87528, r87568, r87581, r87584, r87608, r87673, r87678, r87708, r87629, r87529; additional fixes

  • 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 48070 2013-08-26 18:13:22Z 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 KSPIN_LOCK SynchLock;
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);
43NTSTATUS vboxVideoCmSignalEvents(PVBOXVIDEOCM_MGR pMgr);
44
45NTSTATUS vboxVideoCmCmdSubmitCompleteEvent(PVBOXVIDEOCM_CTX pContext, PKEVENT pEvent);
46void* vboxVideoCmCmdCreate(PVBOXVIDEOCM_CTX pContext, uint32_t cbSize);
47void* vboxVideoCmCmdReinitForContext(void *pvCmd, PVBOXVIDEOCM_CTX pContext);
48void vboxVideoCmCmdRetain(void *pvCmd);
49void vboxVideoCmCmdRelease(void *pvCmd);
50#define VBOXVIDEOCM_SUBMITSIZE_DEFAULT (~0UL)
51void vboxVideoCmCmdSubmit(void *pvCmd, uint32_t cbSize);
52
53#define VBOXVIDEOCMCMDVISITOR_RETURN_BREAK 0x00000001
54#define VBOXVIDEOCMCMDVISITOR_RETURN_RMCMD 0x00000002
55typedef DECLCALLBACK(UINT) FNVBOXVIDEOCMCMDVISITOR(PVBOXVIDEOCM_CTX pContext, PVOID pvCmd, uint32_t cbCmd, PVOID pvVisitor);
56typedef FNVBOXVIDEOCMCMDVISITOR *PFNVBOXVIDEOCMCMDVISITOR;
57NTSTATUS vboxVideoCmCmdVisit(PVBOXVIDEOCM_CTX pContext, BOOLEAN bEntireSession, PFNVBOXVIDEOCMCMDVISITOR pfnVisitor, PVOID pvVisitor);
58
59NTSTATUS vboxVideoCmEscape(PVBOXVIDEOCM_CTX pContext, PVBOXDISPIFESCAPE_GETVBOXVIDEOCMCMD pCmd, uint32_t cbCmd);
60
61#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