wintun/api/driver.h
Simon Rozman ac6db7788a api: move documentation to .h and discontinue on static functions
While Doxygen correctly locates the function documentation when it is
written directly preceding the function body, Microsoft Visual Studio
IDE does not. The former requires the documentation to precede the
function declaration.

Signed-off-by: Simon Rozman <simon@rozman.si>
2020-10-30 16:51:00 +01:00

62 lines
1.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0
*
* Copyright (C) 2018-2020 WireGuard LLC. All Rights Reserved.
*/
#pragma once
#include "api.h"
#include <Windows.h>
#define WINTUN_HWID L"Wintun"
/**
* Tests if any of the hardware IDs match ours.
*
* @param Hwids Multi-string containing a list of hardware IDs.
*
* @return TRUE on match; FALSE otherwise.
*/
BOOL
DriverIsOurHardwareID(_In_z_ const WCHAR *Hwids);
/**
* Tests if hardware ID or any of the compatible IDs match ours.
*
* @param DrvInfoDetailData Detailed information about a particular driver information structure.
*
* @return TRUE on match; FALSE otherwise.
*/
BOOL
DriverIsOurDrvInfoDetail(_In_ const SP_DRVINFO_DETAIL_DATA_W *DrvInfoDetailData);
#if defined(HAVE_EV) || defined(HAVE_WHQL)
/**
* Queries the version of the driver this wintun.dll is packing.
*
* DriverDate Pointer to a variable to receive the driver date.
*
* DriverVersion Pointer to a variable to receive the driver version.
*
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
WINTUN_STATUS
DriverGetVersion(_Out_ FILETIME *DriverDate, _Out_ DWORDLONG *DriverVersion);
/**
* Installs or updates Wintun driver.
*
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
WINTUN_STATUS DriverInstallOrUpdate(VOID);
/**
* Uninstalls Wintun driver.
*
* @return ERROR_SUCCESS on success; Win32 error code otherwise.
*/
WINTUN_STATUS DriverUninstall(VOID);
#endif