2 * PROJECT: ReactOS kernel-mode tests
3 * LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
4 * PURPOSE: Kernel-Mode Test Suite loader application declarations
5 * COPYRIGHT: Copyright 2011-2018 Thomas Faber <thomas.faber@reactos.org>
6 * Copyright 2017 Ged Murphy <gedmurphy@reactos.org>
12 extern PCSTR ErrorFileAndLine
;
15 #define KMT_STRINGIZE(x) #x
16 #endif /* !defined KMT_STRINGIZE */
18 #define location(file, line) do { ErrorFileAndLine = file ":" KMT_STRINGIZE(line); } while (0)
19 #define error_value(Error, value) do { location(__FILE__, __LINE__); Error = value; } while (0)
20 #define error(Error) error_value(Error, GetLastError())
21 #define error_goto(Error, label) do { error(Error); goto label; } while (0)
22 #define error_value_goto(Error, value, label) do { error_value(Error, value); goto label; } while (0)
24 /* service management functions */
30 BOOLEAN IgnoreErrors
);
34 IN PCWSTR ServiceName
,
35 IN PCWSTR ServicePath
,
36 IN PCWSTR DisplayName OPTIONAL
,
37 OUT SC_HANDLE
*ServiceHandle
);
41 IN PCWSTR ServiceName OPTIONAL
,
42 IN OUT SC_HANDLE
*ServiceHandle
);
45 KmtCreateAndStartService(
46 IN PCWSTR ServiceName
,
47 IN PCWSTR ServicePath
,
48 IN PCWSTR DisplayName OPTIONAL
,
49 OUT SC_HANDLE
*ServiceHandle
,
50 IN BOOLEAN RestartIfRunning
);
54 IN PCWSTR ServiceName OPTIONAL
,
55 IN OUT SC_HANDLE
*ServiceHandle
);
59 IN PCWSTR ServiceName OPTIONAL
,
60 IN OUT SC_HANDLE
*ServiceHandle
);
62 DWORD
KmtCloseService(
63 IN OUT SC_HANDLE
*ServiceHandle
);
66 #ifdef KMT_FLT_USER_MODE
70 _In_z_ PCWSTR ServiceName
);
73 KmtFltCreateAndStartService(
74 _In_z_ PCWSTR ServiceName
,
75 _In_z_ PCWSTR ServicePath
,
76 _In_z_ PCWSTR DisplayName OPTIONAL
,
77 _Out_ SC_HANDLE
*ServiceHandle
,
78 _In_ BOOLEAN RestartIfRunning
);
82 _In_z_ PCWSTR ServiceName
,
92 _In_reads_bytes_(dwInBufferSize
) LPVOID lpInBuffer
,
93 _In_ DWORD dwInBufferSize
,
94 _Out_writes_bytes_to_opt_(dwOutBufferSize
, *lpBytesReturned
) LPVOID lpOutBuffer
,
95 _In_ DWORD dwOutBufferSize
,
96 _Out_opt_ LPDWORD lpBytesReturned
);
101 _Out_writes_bytes_(dwMessageBufferSize
) PFILTER_MESSAGE_HEADER lpMessageBuffer
,
102 _In_ DWORD dwMessageBufferSize
,
103 _In_opt_ LPOVERLAPPED Overlapped
);
108 _In_reads_bytes_(dwReplyBufferSize
) PFILTER_REPLY_HEADER lpReplyBuffer
,
109 _In_ DWORD dwReplyBufferSize
);
112 KmtFltGetMessageResult(
114 _In_ LPOVERLAPPED Overlapped
,
115 _Out_ LPDWORD BytesTransferred
);
119 _In_z_ PCWSTR ServiceName
);
123 _In_z_ PCWSTR ServiceName OPTIONAL
,
124 _Inout_ SC_HANDLE
*ServiceHandle
);
126 DWORD
KmtFltCloseService(
127 _Inout_ SC_HANDLE
*ServiceHandle
);
129 #endif /* KMT_FILTER_DRIVER */
131 #endif /* !defined _KMTESTS_H_ */