2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Kernel-Mode Test Suite Loader Application
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
11 extern PCSTR ErrorFileAndLine
;
14 #define KMT_STRINGIZE(x) #x
15 #endif /* !defined KMT_STRINGIZE */
17 #define location(file, line) do { ErrorFileAndLine = file ":" KMT_STRINGIZE(line); } while (0)
18 #define error_value(Error, value) do { location(__FILE__, __LINE__); Error = value; } while (0)
19 #define error(Error) error_value(Error, GetLastError())
20 #define error_goto(Error, label) do { error(Error); goto label; } while (0)
21 #define error_value_goto(Error, value, label) do { error_value(Error, value); goto label; } while (0)
23 /* service management functions */
29 BOOLEAN IgnoreErrors
);
33 IN PCWSTR ServiceName
,
34 IN PCWSTR ServicePath
,
35 IN PCWSTR DisplayName OPTIONAL
,
36 OUT SC_HANDLE
*ServiceHandle
);
40 IN PCWSTR ServiceName OPTIONAL
,
41 IN OUT SC_HANDLE
*ServiceHandle
);
44 KmtCreateAndStartService(
45 IN PCWSTR ServiceName
,
46 IN PCWSTR ServicePath
,
47 IN PCWSTR DisplayName OPTIONAL
,
48 OUT SC_HANDLE
*ServiceHandle
,
49 IN BOOLEAN RestartIfRunning
);
53 IN PCWSTR ServiceName OPTIONAL
,
54 IN OUT SC_HANDLE
*ServiceHandle
);
58 IN PCWSTR ServiceName OPTIONAL
,
59 IN OUT SC_HANDLE
*ServiceHandle
);
61 DWORD
KmtCloseService(
62 IN OUT SC_HANDLE
*ServiceHandle
);
65 /* FS Filter management functions */
69 _In_z_ PCWSTR ServiceName
,
70 _In_z_ PCWSTR ServicePath
,
71 _In_z_ PCWSTR DisplayName OPTIONAL
,
72 _Out_ SC_HANDLE
*ServiceHandle
);
76 _In_z_ PCWSTR ServiceName
);
79 KmtFltCreateAndStartService(
80 _In_z_ PCWSTR ServiceName
,
81 _In_z_ PCWSTR ServicePath
,
82 _In_z_ PCWSTR DisplayName OPTIONAL
,
83 _Out_ SC_HANDLE
*ServiceHandle
,
84 _In_ BOOLEAN RestartIfRunning
);
88 _In_z_ PCWSTR ServiceName
,
98 _In_reads_bytes_(dwInBufferSize
) LPVOID lpInBuffer
,
99 _In_ DWORD dwInBufferSize
,
100 _Out_writes_bytes_to_opt_(dwOutBufferSize
, *lpBytesReturned
) LPVOID lpOutBuffer
,
101 _In_ DWORD dwOutBufferSize
,
102 _Out_opt_ LPDWORD lpBytesReturned
);
107 _Out_writes_bytes_(dwMessageBufferSize
) PFILTER_MESSAGE_HEADER lpMessageBuffer
,
108 _In_ DWORD dwMessageBufferSize
,
109 _In_opt_ LPOVERLAPPED Overlapped
);
114 _In_reads_bytes_(dwReplyBufferSize
) PFILTER_REPLY_HEADER lpReplyBuffer
,
115 _In_ DWORD dwReplyBufferSize
);
118 KmtFltGetMessageResult(
120 _In_ LPOVERLAPPED Overlapped
,
121 _Out_ LPDWORD BytesTransferred
);
125 _In_z_ PCWSTR ServiceName
);
129 _In_z_ PCWSTR ServiceName OPTIONAL
,
130 _Inout_ SC_HANDLE
*ServiceHandle
);
132 DWORD
KmtFltCloseService(
133 _Inout_ SC_HANDLE
*ServiceHandle
);
135 #endif /* !defined _KMTESTS_H_ */