VirtualBox

source: vbox/trunk/src/VBox/HostDrivers/VBoxUSB/win/dev/VBoxUsbRt.h@ 86009

Last change on this file since 86009 was 82968, checked in by vboxsync, 5 years ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1/* $Id: VBoxUsbRt.h 82968 2020-02-04 10:35:17Z vboxsync $ */
2/** @file
3 * VBox USB R0 runtime
4 */
5/*
6 * Copyright (C) 2011-2020 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef VBOX_INCLUDED_SRC_VBoxUSB_win_dev_VBoxUsbRt_h
27#define VBOX_INCLUDED_SRC_VBoxUSB_win_dev_VBoxUsbRt_h
28#ifndef RT_WITHOUT_PRAGMA_ONCE
29# pragma once
30#endif
31
32#include "VBoxUsbCmn.h"
33#include "../cmn/VBoxUsbIdc.h"
34
35#define VBOXUSBRT_MAX_CFGS 4
36
37typedef struct VBOXUSB_PIPE_INFO {
38 UCHAR EndpointAddress;
39 ULONG NextScheduledFrame;
40} VBOXUSB_PIPE_INFO;
41
42typedef struct VBOXUSB_IFACE_INFO {
43 USBD_INTERFACE_INFORMATION *pInterfaceInfo;
44 VBOXUSB_PIPE_INFO *pPipeInfo;
45} VBOXUSB_IFACE_INFO;
46
47typedef struct VBOXUSB_RT
48{
49 UNICODE_STRING IfName;
50
51 HANDLE hPipe0;
52 HANDLE hConfiguration;
53 uint32_t uConfigValue;
54
55 uint32_t uNumInterfaces;
56 USB_DEVICE_DESCRIPTOR *devdescr;
57 USB_CONFIGURATION_DESCRIPTOR *cfgdescr[VBOXUSBRT_MAX_CFGS];
58
59 VBOXUSB_IFACE_INFO *pVBIfaceInfo;
60
61 uint16_t idVendor, idProduct, bcdDevice;
62 char szSerial[MAX_USB_SERIAL_STRING];
63 BOOLEAN fIsHighSpeed;
64
65 HVBOXUSBIDCDEV hMonDev;
66 PFILE_OBJECT pOwner;
67} VBOXUSB_RT, *PVBOXUSB_RT;
68
69typedef struct VBOXUSBRT_IDC
70{
71 PDEVICE_OBJECT pDevice;
72 PFILE_OBJECT pFile;
73} VBOXUSBRT_IDC, *PVBOXUSBRT_IDC;
74
75DECLHIDDEN(NTSTATUS) vboxUsbRtGlobalsInit();
76DECLHIDDEN(VOID) vboxUsbRtGlobalsTerm();
77
78DECLHIDDEN(NTSTATUS) vboxUsbRtInit(PVBOXUSBDEV_EXT pDevExt);
79DECLHIDDEN(VOID) vboxUsbRtClear(PVBOXUSBDEV_EXT pDevExt);
80DECLHIDDEN(NTSTATUS) vboxUsbRtRm(PVBOXUSBDEV_EXT pDevExt);
81DECLHIDDEN(NTSTATUS) vboxUsbRtStart(PVBOXUSBDEV_EXT pDevExt);
82
83DECLHIDDEN(NTSTATUS) vboxUsbRtDispatch(PVBOXUSBDEV_EXT pDevExt, PIRP pIrp);
84DECLHIDDEN(NTSTATUS) vboxUsbRtCreate(PVBOXUSBDEV_EXT pDevExt, PIRP pIrp);
85DECLHIDDEN(NTSTATUS) vboxUsbRtClose(PVBOXUSBDEV_EXT pDevExt, PIRP pIrp);
86
87#endif /* !VBOX_INCLUDED_SRC_VBoxUSB_win_dev_VBoxUsbRt_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