14 #define APCH (HANDLE)'SOR ' 36 *ApcHelperHandle =
APCH;
69 if ((ApcHelperHandle !=
APCH) || (!ThreadId) || (!ThreadId->ThreadHandle))
79 ThreadId->ThreadHandle =
NULL;
80 ThreadId->Reserved = 0;
96 if ((ApcHelperHandle !=
APCH) ||
98 (!ThreadId->ThreadHandle) ||
124 if ((ApcHelperHandle !=
APCH) || (!ThreadId))
138 &ThreadId->ThreadHandle,
144 ThreadId->Reserved = (
DWORD_PTR)ThreadHandle;
#define ERROR_INVALID_PARAMETER
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
_In_ NDIS_ERROR_CODE ErrorCode
VOID WINAPI ApcRoutine(PVOID Context, PIO_STATUS_BLOCK IoStatus, ULONG Reserved)
DWORD WINAPI WahOpenCurrentThread(IN HANDLE ApcHelperHandle, OUT LPWSATHREADID ThreadId)
DWORD WINAPI GetLastError(VOID)
DWORD WINAPI WahCloseApcHelper(IN HANDLE ApcHelperHandle)
DWORD WINAPI QueueUserAPC(IN PAPCFUNC pfnAPC, IN HANDLE hThread, IN ULONG_PTR dwData)
INT WINAPI WahQueueUserApc(IN HANDLE ApcHelperHandle, IN LPWSATHREADID ThreadId, IN LPWSAUSERAPC ApcRoutine, IN PVOID ApcContext OPTIONAL)
#define DUPLICATE_SAME_ACCESS
HANDLE WINAPI GetCurrentThread(VOID)
DWORD WINAPI WahCloseThread(IN HANDLE ApcHelperHandle, IN LPWSATHREADID ThreadId)
#define GetCurrentProcess()
_In_ HANDLE ProcessHandle
DWORD WINAPI WahOpenApcHelper(OUT PHANDLE ApcHelperHandle)
BOOL WINAPI DuplicateHandle(IN HANDLE hSourceProcessHandle, IN HANDLE hSourceHandle, IN HANDLE hTargetProcessHandle, OUT LPHANDLE lpTargetHandle, IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwOptions)
PULONG MinorVersion OPTIONAL