VirtualBox

source: vbox/trunk/src/VBox/GuestHost/installation/VBoxWinDrvInstInternal.h@ 107588

Last change on this file since 107588 was 107061, checked in by vboxsync, 3 months ago

Windows driver installation: Added VBOX_WIN_DRIVERINSTALL_F_NO_DESTROY and internal VBoxWinDrvInstTestXXX functions, required for testcase(s). bugref:10762

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.9 KB
Line 
1/* $Id: VBoxWinDrvInstInternal.h 107061 2024-11-20 16:09:39Z vboxsync $ */
2/** @file
3 * VBoxWinDrvInstInternal.h - Internal header for VBoxWinDrvInst.cpp.
4 *
5 * Required for exposing internal stuff to the testcase(s).
6 */
7
8/*
9 * Copyright (C) 2024 Oracle and/or its affiliates.
10 *
11 * This file is part of VirtualBox base platform packages, as
12 * available from https://www.virtualbox.org.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation, in version 3 of the
17 * License.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see <https://www.gnu.org/licenses>.
26 *
27 * SPDX-License-Identifier: GPL-3.0-only
28 */
29
30#ifndef VBOX_INCLUDED_SRC_installation_VBoxWinDrvInstInternal_h
31#define VBOX_INCLUDED_SRC_installation_VBoxWinDrvInstInternal_h
32#ifndef RT_WITHOUT_PRAGMA_ONCE
33# pragma once
34#endif
35
36/**
37 * Enumeration specifying the driver (un)installation mode.
38 */
39typedef enum VBOXWINDRVINSTMODE
40{
41 /** Invalid mode; do not use. */
42 VBOXWINDRVINSTMODE_INVALID = 0,
43 /** Install a driver. */
44 VBOXWINDRVINSTMODE_INSTALL,
45 /** Install by executing an INF section. */
46 VBOXWINDRVINSTMODE_INSTALL_INFSECTION,
47 /** Uninstall a driver. */
48 VBOXWINDRVINSTMODE_UNINSTALL,
49 /** Uninstall by executing an INF section. */
50 VBOXWINDRVINSTMODE_UNINSTALL_INFSECTION
51} VBOXWINDRVINSTMODE;
52
53/**
54 * Structure for keeping driver (un)installation parameters.
55 */
56typedef struct VBOXWINDRVINSTPARMS
57{
58 /** Installation mode. */
59 VBOXWINDRVINSTMODE enmMode;
60 /** Installation flags of type VBOX_WIN_DRIVERINSTALL_F_XXX. */
61 uint32_t fFlags;
62 /** INF file to use for (un)installation. */
63 PRTUTF16 pwszInfFile;
64 /** Union keeping specific parameters, depending on \a enmMode. */
65 union
66 {
67 struct
68 {
69 /** Model including decoration (e.g. "VBoxUSB.NTAMD64"); optional and might be NULL. */
70 PRTUTF16 pwszModel;
71 /** Hardware (Pnp) ID; optional and might be NULL. */
72 PRTUTF16 pwszPnpId;
73 /** Name of section to install. */
74 PRTUTF16 pwszSection;
75 } UnInstall;
76 struct
77 {
78 /** Section within in the INF file to execute. */
79 PRTUTF16 pwszSection;
80 } ExecuteInf;
81 } u;
82} VBOXWINDRVINSTPARMS;
83/** Pointer to driver installation parameters. */
84typedef VBOXWINDRVINSTPARMS *PVBOXWINDRVINSTPARMS;
85
86#ifdef TESTCASE
87PVBOXWINDRVINSTPARMS VBoxWinDrvInstTestGetParms(VBOXWINDRVINST hDrvInst);
88void VBoxWinDrvInstTestParmsDestroy(PVBOXWINDRVINSTPARMS);
89#endif
90
91#endif /* !VBOX_INCLUDED_SRC_installation_VBoxWinDrvInstInternal_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