VBoxUSBFilterMgr.h revision c7814cf6e1240a519cbec0441e033d0e2470ed00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/* $Id$ */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * VirtualBox Ring-0 USB Filter Manager.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/*
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Copyright (C) 2007-2011 Oracle Corporation
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * available from http://www.virtualbox.org. This file is free software;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * you can redistribute it and/or modify it under the terms of the GNU
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * General Public License (GPL) as published by the Free Software
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync */
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef ___VBoxUSBFilterMgr_h
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ___VBoxUSBFilterMgr_h
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <VBox/usbfilter.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncRT_C_DECLS_BEGIN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#if defined(RT_OS_WINDOWS)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct VBOXUSBFLTCTX *VBOXUSBFILTER_CONTEXT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define VBOXUSBFILTER_CONTEXT_NIL NULL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#else
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef RTPROCESS VBOXUSBFILTER_CONTEXT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define VBOXUSBFILTER_CONTEXT_NIL NIL_RTPROCESS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncint VBoxUSBFilterInit(void);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncvoid VBoxUSBFilterTerm(void);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncvoid VBoxUSBFilterRemoveOwner(VBOXUSBFILTER_CONTEXT Owner);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncint VBoxUSBFilterAdd(PCUSBFILTER pFilter, VBOXUSBFILTER_CONTEXT Owner, uintptr_t *puId);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncint VBoxUSBFilterRemove(VBOXUSBFILTER_CONTEXT Owner, uintptr_t uId);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVBOXUSBFILTER_CONTEXT VBoxUSBFilterMatch(PCUSBFILTER pDevice, uintptr_t *puId);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVBOXUSBFILTER_CONTEXT VBoxUSBFilterMatchEx(PCUSBFILTER pDevice, uintptr_t *puId, bool fRemoveFltIfOneShot, bool *pfFilter, bool *pfIsOneShot);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVBOXUSBFILTER_CONTEXT VBoxUSBFilterGetOwner(uintptr_t uId);
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncRT_C_DECLS_END
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync