---
title: llarp::win32

---

# llarp::win32



## Namespaces

| Name           |
| -------------- |
| **[llarp::win32::detail](Namespaces/namespacellarp_1_1win32_1_1detail.md)**  |
| **[llarp::win32::WinDivert](Namespaces/namespacellarp_1_1win32_1_1WinDivert.md)**  |
| **[llarp::win32::wintun](Namespaces/namespacellarp_1_1win32_1_1wintun.md)**  |

## Classes

|                | Name           |
| -------------- | -------------- |
| class | **[llarp::win32::VPNPlatform](Classes/classllarp_1_1win32_1_1VPNPlatform.md)**  |
| class | **[llarp::win32::error](Classes/classllarp_1_1win32_1_1error.md)**  |
| class | **[llarp::win32::OneShotExec](Classes/classllarp_1_1win32_1_1OneShotExec.md)** <br>RAII wrapper for calling a subprocess in win32 for parallel executuion in the same scope destructor blocks until timeout has been hit of the execution of the subprocses finished.  |
| class | **[llarp::win32::DeferExec](Classes/classllarp_1_1win32_1_1DeferExec.md)** <br>a wrapper for [OneShotExec](Classes/classllarp_1_1win32_1_1OneShotExec.md) that calls the thing we want on destruction  |

## Functions

|                | Name           |
| -------------- | -------------- |
| template <typename Func ,typename... More\> <br>void | **[load_dll_functions](Namespaces/namespacellarp_1_1win32.md#function-load-dll-functions)**(const std::string & dll, const std::string & fname, Func *& f, More &&... funcs) |
| std::string | **[error_to_string](Namespaces/namespacellarp_1_1win32.md#function-error-to-string)**(DWORD err) |
| void | **[Exec](Namespaces/namespacellarp_1_1win32.md#function-exec)**(std::string exe, std::string args)<br>simple wrapper to run a single command in a blocking way  |
| template <typename Data \> <br>GUID | **[MakeDeterministicGUID](Namespaces/namespacellarp_1_1win32.md#function-makedeterministicguid)**(Data data)<br>given a container of data hash it and make it into a GUID so we have a way to deterministically generate GUIDs  |
| void | **[ensure_handle_is_valid](Namespaces/namespacellarp_1_1win32.md#function-ensure-handle-is-valid)**(HANDLE h) |


## Functions Documentation

### function load_dll_functions

```cpp
template <typename Func ,
typename... More>
void load_dll_functions(
    const std::string & dll,
    const std::string & fname,
    Func *& f,
    More &&... funcs
)
```


### function error_to_string

```cpp
std::string error_to_string(
    DWORD err
)
```


### function Exec

```cpp
void Exec(
    std::string exe,
    std::string args
)
```

simple wrapper to run a single command in a blocking way 

### function MakeDeterministicGUID

```cpp
template <typename Data >
inline GUID MakeDeterministicGUID(
    Data data
)
```

given a container of data hash it and make it into a GUID so we have a way to deterministically generate GUIDs 

### function ensure_handle_is_valid

```cpp
inline void ensure_handle_is_valid(
    HANDLE h
)
```






-------------------------------

Updated on 2022-10-25 at 00:38:17 +0000