10 #define KMT_FLT_USER_MODE 26 OUT SC_HANDLE *ServiceHandle);
66 _Out_ SC_HANDLE *ServiceHandle)
99 _Inout_ SC_HANDLE *ServiceHandle)
121 if (EnableDriverLoadPrivlege)
243 _Inout_ SC_HANDLE *ServiceHandle)
451 WCHAR DefaultInstance[128];
458 StringCbCopyW(KeyPath,
sizeof(KeyPath),
L"SYSTEM\\CurrentControlSet\\Services\\");
477 StringCbCatW(DefaultInstance,
sizeof(DefaultInstance),
L" Instance");
static VOID FreeMemory(PCREATE_DATA Data)
BOOL WINAPI LookupPrivilegeValueW(LPCWSTR lpSystemName, LPCWSTR lpPrivilegeName, PLUID lpLuid)
DWORD KmtFltRunKernelTest(_In_ HANDLE hPort, _In_z_ PCSTR TestName)
DWORD KmtFltSendMessage(_In_ HANDLE hPort, _In_reads_bytes_(dwInBufferSize) LPVOID InBuffer, _In_ DWORD InBufferSize, _Out_writes_bytes_to_opt_(dutBufferSize, *BytesReturned) LPVOID OutBuffer, _In_ DWORD OutBufferSize, _Out_opt_ LPDWORD BytesReturned)
_In_ UCHAR _In_ ULONG _Out_ PUCHAR _Outptr_result_bytebuffer_ OutBufferLength PVOID * OutBuffer
ACPI_SIZE strlen(const char *String)
DWORD KmtFltUnloadDriver(_In_ HANDLE *hPort, _In_ BOOLEAN DisonnectComms)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
#define ERROR_NOT_ENOUGH_MEMORY
DWORD WINAPI GetLastError(VOID)
struct _KMTFLT_MESSAGE_HEADER * PKMTFLT_MESSAGE_HEADER
struct _KMTFLT_MESSAGE_HEADER KMTFLT_MESSAGE_HEADER
DWORD KmtCloseService(IN OUT SC_HANDLE *ServiceHandle)
void __cdecl __debugbreak(void)
DWORD KmtFltCreateService(_In_z_ PCWSTR ServiceName, _In_z_ PCWSTR DisplayName, _Out_ SC_HANDLE *ServiceHandle)
STRSAFEAPI StringCbCatW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
DWORD KmtpCreateService(IN PCWSTR ServiceName, IN PCWSTR ServicePath, IN PCWSTR DisplayName OPTIONAL, IN DWORD ServiceType, OUT SC_HANDLE *ServiceHandle)
#define SE_PRIVILEGE_ENABLED
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
DWORD KmtFltDeleteService(_In_opt_z_ PCWSTR ServiceName, _Inout_ SC_HANDLE *ServiceHandle)
DWORD EnablePrivilege(_In_ HANDLE hToken, _In_z_ LPWSTR lpPrivName, _In_ BOOL bEnable)
DWORD KmtFltSendBufferToDriver(_In_ HANDLE hPort, _In_ DWORD Message, _In_reads_bytes_(BufferSize) LPVOID InBuffer, _In_ DWORD BufferSize, _Out_writes_bytes_to_opt_(OutBufferSize, *BytesReturned) LPVOID OutBuffer, _In_ DWORD OutBufferSize, _Out_opt_ LPDWORD BytesReturned)
DWORD EnablePrivilegeInCurrentProcess(_In_z_ LPWSTR lpPrivName, _In_ BOOL bEnable)
#define SERVICE_FILE_SYSTEM_DRIVER
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_ PCUNICODE_STRING Altitude
#define REG_OPTION_NON_VOLATILE
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
DWORD KmtFltSendUlongToDriver(_In_ HANDLE hPort, _In_ DWORD Message, _In_ DWORD Value)
DWORD KmtFltAddAltitude(_In_z_ LPWSTR Altitude)
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
static WCHAR TestServiceName[MAX_PATH]
DWORD KmtDeleteService(IN PCWSTR ServiceName OPTIONAL, IN OUT SC_HANDLE *ServiceHandle)
DWORD KmtFltDisconnectComms(_In_ HANDLE hPort)
DWORD KmtFltLoad(_In_z_ PCWSTR ServiceName)
DWORD KmtFltSendWStringToDriver(_In_ HANDLE hPort, _In_ DWORD Message, _In_ PCWSTR String)
LONG WINAPI RegCreateKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
#define GetCurrentProcess()
DWORD KmtFltSendToDriver(_In_ HANDLE hPort, _In_ DWORD Message)
#define _Out_writes_bytes_to_opt_(size, count)
BOOL WINAPI AdjustTokenPrivileges(HANDLE TokenHandle, BOOL DisableAllPrivileges, PTOKEN_PRIVILEGES NewState, DWORD BufferLength, PTOKEN_PRIVILEGES PreviousState, PDWORD ReturnLength)
DWORD KmtFltLoadDriver(_In_ BOOLEAN EnableDriverLoadPrivlege, _In_ BOOLEAN RestartIfRunning, _In_ BOOLEAN ConnectComms, _Out_ HANDLE *hPort)
BOOL WINAPI OpenProcessToken(HANDLE ProcessHandle, DWORD DesiredAccess, PHANDLE TokenHandle)
DWORD KmtFltConnectComms(_Out_ HANDLE *hPort)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
IN PVCB IN VBO IN ULONG OUT PBCB OUT PVOID IN BOOLEAN IN BOOLEAN Zero
DWORD KmtFltUnload(_In_z_ PCWSTR ServiceName)
DWORD KmtFltConnect(_In_z_ PCWSTR ServiceName, _Out_ HANDLE *hPort)
#define ERROR_SERVICE_ALREADY_RUNNING
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
DWORD KmtFltCloseService(_Inout_ SC_HANDLE *ServiceHandle)
#define TOKEN_ADJUST_PRIVILEGES
#define KEY_CREATE_SUB_KEY
#define HeapFree(x, y, z)
#define RegCloseKey(hKey)
#define SE_LOAD_DRIVER_NAME
DWORD KmtFltSendStringToDriver(_In_ HANDLE hPort, _In_ DWORD Message, _In_ PCSTR String)
DWORD KmtFltDisconnect(_In_ HANDLE hPort)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize
#define HKEY_LOCAL_MACHINE
#define _In_reads_bytes_(size)
PULONG MinorVersion OPTIONAL