diff options
Diffstat (limited to 'api/api.h')
-rw-r--r-- | api/api.h | 70 |
1 files changed, 69 insertions, 1 deletions
@@ -6,6 +6,7 @@ #pragma once #include <Windows.h> +#include <IPExport.h> typedef _Return_type_success_(return == ERROR_SUCCESS) DWORD WINSTATUS; extern HINSTANCE ResourceModule; @@ -37,6 +38,42 @@ NciInit(); void NciCleanup(); +WINSTATUS +RegistryOpenKeyWait( + _In_ HKEY Key, + _In_z_count_c_(MAX_PATH) LPCWSTR Path, + _In_ DWORD Access, + _In_ DWORD Timeout, + _Out_ HKEY *KeyOut); + +WINSTATUS +RegistryWaitForKey(_In_ HKEY Key, _In_z_count_c_(MAX_PATH) LPCWSTR Path, _In_ DWORD Timeout); + +WINSTATUS +RegistryGetString(_Inout_ LPWSTR *Buf, _In_ DWORD Len, _In_ DWORD ValueType); + +WINSTATUS +RegistryGetMultiString(_Inout_ LPWSTR *Buf, _In_ DWORD Len, _In_ DWORD ValueType); + +WINSTATUS +RegistryQueryString(_In_ HKEY Key, _In_opt_z_ LPCWSTR Name, _Out_ LPWSTR *Value); + +WINSTATUS +RegistryQueryStringWait(_In_ HKEY Key, _In_opt_z_ LPCWSTR Name, _In_ DWORD Timeout, _Out_ LPWSTR *Value); + +WINSTATUS +RegistryQueryDWORD(_In_ HKEY Key, _In_opt_z_ LPCWSTR Name, _Out_ DWORD *Value); + +WINSTATUS +RegistryQueryDWORDWait(_In_ HKEY Key, _In_opt_z_ LPCWSTR Name, _In_ DWORD Timeout, _Out_ DWORD *Value); + +WINSTATUS WINAPI +WintunGetVersion( + _Out_ DWORD *DriverVersionMaj, + _Out_ DWORD *DriverVersionMin, + _Out_ DWORD *NdisVersionMaj, + _Out_ DWORD *NdisVersionMin); + #define MAX_POOL 256 #define MAX_INSTANCE_ID MAX_PATH /* TODO: Is MAX_PATH always enough? */ @@ -53,4 +90,35 @@ VOID WINAPI WintunFreeAdapter(_In_ WINTUN_ADAPTER *Adapter); WINSTATUS WINAPI -WintunGetAdapter(_In_z_count_c_(MAX_POOL) LPCWSTR Pool, _In_z_ LPCWSTR IfName, _Out_ WINTUN_ADAPTER **Adapter); +WintunGetAdapter(_In_z_count_c_(MAX_POOL) LPCWSTR Pool, _In_z_ LPCWSTR Name, _Out_ WINTUN_ADAPTER **Adapter); + +WINSTATUS WINAPI +WintunGetAdapterName(_In_ const WINTUN_ADAPTER *Adapter, _Out_cap_c_(MAX_ADAPTER_NAME) LPWSTR Name); + +WINSTATUS WINAPI +WintunSetAdapterName(_In_ const WINTUN_ADAPTER *Adapter, _In_z_count_c_(MAX_ADAPTER_NAME) LPCWSTR Name); + +void WINAPI +WintunGetAdapterGUID(_In_ const WINTUN_ADAPTER *Adapter, _Out_ GUID *Guid); + +void WINAPI +WintunGetAdapterLUID(_In_ const WINTUN_ADAPTER *Adapter, _Out_ LUID *Luid); + +WINSTATUS WINAPI +WintunGetAdapterDeviceObject(_In_ const WINTUN_ADAPTER *Adapter, _Out_ HANDLE *Handle); + +WINSTATUS WINAPI +WintunCreateAdapter( + _In_z_count_c_(MAX_POOL) LPCWSTR Pool, + _In_z_ LPCWSTR Name, + _In_opt_ const GUID *RequestedGUID, + _Out_ WINTUN_ADAPTER **Adapter, + _Inout_ BOOL *RebootRequired); + +WINSTATUS WINAPI +WintunDeleteAdapter(_In_ const WINTUN_ADAPTER *Adapter, _Inout_ BOOL *RebootRequired); + +typedef BOOL(CALLBACK *WINTUN_ENUMPROC)(_In_ const WINTUN_ADAPTER *Adapter, _In_ LPARAM Param); + +WINSTATUS WINAPI +WintunEnumAdapters(_In_z_count_c_(MAX_POOL) LPCWSTR Pool, _In_ WINTUN_ENUMPROC Func, _In_ LPARAM Param); |