135 DWORD WaitResult, WaitCount;
213 DPRINT(
"Unexpected wait result watching the group policy events: 0x%x\n", WaitResult);
254 DPRINT1(
"Referencing the library failed!\n");
308 if (lpSecurityDescriptor ==
NULL)
314 lpSecurityDescriptor);
324 if (lpSecurityDescriptor ==
NULL)
327 if (lpSecurityDescriptor ==
NULL)
334 lpSecurityDescriptor);
375 if (lpSecurityDescriptor !=
NULL)
402 *NotifyLink =
Notify->Next;
417 NotifyLink = &
Notify->Next;
490 if (lpSecurityDescriptor !=
NULL)
583 _Out_ PGROUP_POLICY_OBJECTA *ppGPOList
586 DPRINT1(
"GetAppliedGPOListA is UNIMPLEMENTED!\n");
597 _Out_ PGROUP_POLICY_OBJECTW *ppGPOList
600 DPRINT1(
"GetAppliedGPOListW is UNIMPLEMENTED!\n");
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
struct _SECURITY_ATTRIBUTES SECURITY_ATTRIBUTES
BOOL WINAPI GetModuleHandleExW(IN DWORD dwFlags, IN LPCWSTR lpwModuleName OPTIONAL, OUT HMODULE *phModule)
VOID WINAPI FreeLibraryAndExitThread(HMODULE hLibModule, DWORD dwExitCode)
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)
PSECURITY_DESCRIPTOR CreateDefaultSecurityDescriptor(VOID)
static const WCHAR Cleanup[]
static HANDLE hMachineGPAppliedEvent
static HANDLE hNotificationThread
static PGP_NOTIFY NotificationList
HANDLE WINAPI EnterCriticalPolicySection(IN BOOL bMachine)
static const WCHAR szMachineGPForceRefreshEvent[]
static HANDLE CreateGPEvent(IN BOOL bMachine, IN PSECURITY_DESCRIPTOR lpSecurityDescriptor)
static const WCHAR szMachineGPRefreshEvent[]
DWORD WINAPI GetAppliedGPOListW(_In_ DWORD dwFlags, _In_ LPCWSTR pMachineName, _In_ PSID pSidUser, _In_ GUID *pGuidExtension, _Out_ PGROUP_POLICY_OBJECTW *ppGPOList)
struct _GP_NOTIFY GP_NOTIFY
BOOL WINAPI RefreshPolicyEx(IN BOOL bMachine, IN DWORD dwOptions)
BOOL WINAPI WaitForMachinePolicyForegroundProcessing(VOID)
static VOID NotifyGPEvents(IN BOOL bMachine)
static const WCHAR szLocalGPApplied[]
BOOL WINAPI RefreshPolicy(IN BOOL bMachine)
VOID InitializeGPNotifications(VOID)
static HANDLE hLocalGPAppliedEvent
static const WCHAR szLocalGPForceRefreshEvent[]
struct _GP_NOTIFY * PGP_NOTIFY
DWORD WINAPI GetAppliedGPOListA(_In_ DWORD dwFlags, _In_ LPCSTR pMachineName, _In_ PSID pSidUser, _In_ GUID *pGuidExtension, _Out_ PGROUP_POLICY_OBJECTA *ppGPOList)
static const WCHAR szMachineGPDoneEvent[]
static DWORD WINAPI GPNotificationThreadProc(IN LPVOID lpParameter)
static CRITICAL_SECTION GPNotifyLock
static const WCHAR szMachineGPMutex[]
VOID UninitializeGPNotifications(VOID)
BOOL WINAPI UnregisterGPNotification(IN HANDLE hEvent)
static GP_ACTION GPNotificationAction
static const WCHAR szLocalGPDoneEvent[]
BOOL WINAPI WaitForUserPolicyForegroundProcessing(VOID)
BOOL WINAPI RegisterGPNotification(IN HANDLE hEvent, IN BOOL bMachine)
static const WCHAR szMachineGPApplied[]
static const WCHAR szLocalGPMutex[]
BOOL WINAPI LeaveCriticalPolicySection(IN HANDLE hSection)
static HANDLE hNotificationThreadEvent
static const WCHAR szLocalGPRefreshEvent[]
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
static PCWSTR BOOL bMachine
LPVOID lpSecurityDescriptor
DWORD WINAPI WaitForMultipleObjects(IN DWORD nCount, IN CONST HANDLE *lpHandles, IN BOOL bWaitAll, IN DWORD dwMilliseconds)
HANDLE WINAPI DECLSPEC_HOTPATCH OpenEventW(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN LPCWSTR lpName)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define EVENT_MODIFY_STATE
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
_In_ const BITMAPINFO _In_ UINT _In_opt_ HANDLE hSection