68 DWORD Value1 = 0x12345678, Value2 = 0x87654321;
79 skip(
"Failed to create event");
86 skip(
"Failed to create registry key");
92 skip(
"Failed to set initial test value");
100 if (WatchThread1State ==
NULL)
102 skip(
"Failed to allocate memory for watch thread state");
108 if (WatchThread1Handle)
124 WatchThread1Handle =
NULL;
128 skip(
"Failed to create watch thread");
131 WatchThread1State =
NULL;
134 if (WatchThread2State ==
NULL)
136 skip(
"Failed to allocate memory for watch thread state");
139 WatchThread2State->KeyHandle =
KeyHandle;
142 if (WatchThread2Handle)
154 WatchThread2Handle =
NULL;
158 skip(
"Failed to create watch thread");
161 WatchThread2State =
NULL;
170 skip(
"Failed to open registry key");
217 skip(
"Failed to open registry key");
244 skip(
"Failed to create subkey");
285 skip(
"Failed to create secondary key");
323 skip(
"Failed to allocate memory for APC context");
340 if (WatchThread1Handle)
344 if (WatchThread2Handle)
VOID WINAPI NtNotifyChangeMultipleKeys_ApcRoutine(PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved)
struct _APC_CONTEXT APC_CONTEXT
struct _APC_CONTEXT * PAPC_CONTEXT
struct _WATCH_THREAD_CONTEXT * PWATCH_THREAD_CONTEXT
struct _WATCH_THREAD_CONTEXT WATCH_THREAD_CONTEXT
DWORD WINAPI NtNotifyChangeMultipleKeys_WatchThread(LPVOID lpParameter)
#define ok_eq_ulong(value, expected)
#define ok_ntstatus(status, expected)
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
_In_ PIO_STATUS_BLOCK IoStatusBlock
#define NT_SUCCESS(StatCode)
#define RTL_CONSTANT_STRING(s)
#define HeapFree(x, y, z)
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)
static const WCHAR Cleanup[]
#define InitializeObjectAttributes(p, n, a, r, s)
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING SubKeyName
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ PNDIS_STRING _Out_ PNDIS_HANDLE SubKeyHandle
_Must_inspect_result_ _Out_ PNDIS_STATUS _In_ NDIS_HANDLE _In_ ULONG _Out_ PNDIS_STRING _Out_ PNDIS_HANDLE KeyHandle
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
NTSYSAPI NTSTATUS NTAPI NtOpenKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes)
NTSYSAPI NTSTATUS NTAPI NtSetValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
#define REG_OPTION_NON_VOLATILE
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSTATUS NTAPI NtDeleteKey(IN HANDLE KeyHandle)
NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
NTSTATUS NTAPI NtNotifyChangeMultipleKeys(IN HANDLE MasterKeyHandle, IN ULONG Count, IN POBJECT_ATTRIBUTES SlaveObjects, IN HANDLE Event, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN ULONG CompletionFilter, IN BOOLEAN WatchTree, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN Asynchronous)
#define UNREFERENCED_PARAMETER(P)
#define RTL_CONSTANT_OBJECT_ATTRIBUTES(n, a)
_Out_ PKAPC_STATE ApcState
NTSTATUS NTAPI NtTestAlert(VOID)
#define STATUS_NOTIFY_CLEANUP
#define STATUS_NOTIFY_ENUM_DIR
#define OBJ_CASE_INSENSITIVE
PIO_STATUS_BLOCK IoStatusBlock
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
_Reserved_ PVOID Reserved
#define REG_NOTIFY_CHANGE_LAST_SET
_Out_ PHANDLE EventHandle