60 if (InfoBufferSize == 0)
70 DPRINT1(
"Unrecognized user-mode callback request\n");
79 DPRINT(
"Callback handler dying! Error code %lu",
Error);
107 if (CallbackThread !=
NULL)
186 StringCbCopyW(DevicePath,
sizeof(DevicePath),
L"\\\\.\\Global\\GLOBALROOT\\Device\\");
DWORD KmtStopService(IN PCWSTR ServiceName OPTIONAL, IN OUT SC_HANDLE *ServiceHandle)
ACPI_SIZE strlen(const char *String)
#define error_goto(Error, label)
#define UNREFERENCED_PARAMETER(P)
static WCHAR TestServiceName[MAX_PATH]
KMT_CALLBACK_INFORMATION_CLASS OperationClass
#define KMTEST_DEVICE_PATH
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
DWORD KmtSendStringToDriver(IN DWORD ControlCode, IN PCSTR String)
void __cdecl __debugbreak(void)
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
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
static SC_HANDLE TestServiceHandle
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
DWORD KmtSendBufferToDriver(IN DWORD ControlCode, IN OUT PVOID Buffer OPTIONAL, IN DWORD InLength, IN OUT PDWORD OutLength)
_IRQL_requires_same_ typedef _In_ ULONG ControlCode
#define KMT_MAKE_CODE(ControlCode)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
#define IOCTL_KMTEST_USERMODE_SEND_RESPONSE
VOID KmtCloseDriver(VOID)
DWORD KmtRunKernelTest(IN PCSTR TestName)
static HANDLE TestDeviceHandle
DWORD KmtDeleteService(IN PCWSTR ServiceName OPTIONAL, IN OUT SC_HANDLE *ServiceHandle)
SIZE_T NTAPI VirtualQuery(IN LPCVOID lpAddress, OUT PMEMORY_BASIC_INFORMATION lpBuffer, IN SIZE_T dwLength)
DWORD KmtSendWStringToDriver(IN DWORD ControlCode, IN PCWSTR String)
DWORD WINAPI KmtUserCallbackThread(PVOID Parameter)
DWORD KmtSendToDriver(IN DWORD ControlCode)
VOID KmtUnloadDriver(VOID)
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
IN OUT PVCB OUT PDIRENT OUT PBCB IN BOOLEAN CreateFile
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
char * cleanup(char *str)
#define IOCTL_KMTEST_RUN_TEST
VOID KmtLoadDriver(IN PCWSTR ServiceName, IN BOOLEAN RestartIfRunning)
DWORD KmtCreateAndStartService(IN PCWSTR ServiceName, IN PCWSTR ServicePath, IN PCWSTR DisplayName OPTIONAL, OUT SC_HANDLE *ServiceHandle, IN BOOLEAN RestartIfRunning)
STRSAFEAPI StringCbCopyW(STRSAFE_LPWSTR pszDest, size_t cbDest, STRSAFE_LPCWSTR pszSrc)
DWORD KmtSendUlongToDriver(IN DWORD ControlCode, IN DWORD Value)
#define IOCTL_KMTEST_USERMODE_AWAIT_REQ
PULONG MinorVersion OPTIONAL