52 return CurrentNotification;
70 TRACE(
"LsapAddNotification(%p)\n", pRequestMsg);
91 pEntry->ClientId.UniqueProcess);
94 ERR(
"NtOpenProcess() failed (Status 0x%08lx)\n",
Status);
102 &
pEntry->MappedEventHandle,
108 ERR(
"NtDuplicateObject() failed (Status 0x%08lx)\n",
Status);
137 TRACE(
"LsapRemoveNotification(%p)\n", pRequestMsg);
164 TRACE(
"LsapRegisterNotification(%p)\n", pRequestMsg);
static NTSTATUS LsapAddNotification(PLSA_API_MSG pRequestMsg)
#define STATUS_INSUFFICIENT_RESOURCES
VOID LsapInitNotificationList(VOID)
FORCEINLINE VOID InsertHeadList(_Inout_ PLIST_ENTRY ListHead, _Inout_ __drv_aliasesMem PLIST_ENTRY Entry)
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceShared(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)
LSA_POLICY_CHANGE_NOTIFY_MSG PolicyChangeNotify
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
static NTSTATUS LsapRemoveNotification(PLSA_API_MSG pRequestMsg)
_In_ BOOL _In_ HANDLE hProcess
POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass
struct _LSA_NOTIFICATION_ENTRY LSA_NOTIFICATION_ENTRY
NTSTATUS NTAPI NtOpenProcess(OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId)
static RTL_RESOURCE NotificationListLock
NTSYSAPI VOID NTAPI RtlReleaseResource(_In_ PRTL_RESOURCE Resource)
#define STATUS_INVALID_HANDLE
struct _LSA_POLICY_CHANGE_NOTIFY_MSG::@3433::@3435 Request
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE _Inout_opt_ __drv_aliasesMem PVOID _Outptr_result_nullonfailure_ _At_ * NotificationEntry(return==0, __drv_allocatesMem(Mem))) PVOID *NotificationEntry
#define DUPLICATE_SAME_ACCESS
#define PROCESS_DUP_HANDLE
enum _POLICY_NOTIFICATION_INFORMATION_CLASS POLICY_NOTIFICATION_INFORMATION_CLASS
static LIST_ENTRY NotificationListHead
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
#define NtCurrentProcess()
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
struct _LIST_ENTRY * Flink
NTSYSAPI VOID NTAPI RtlInitializeResource(_In_ PRTL_RESOURCE Resource)
NTSTATUS NTAPI NtSetEvent(IN HANDLE EventHandle, OUT PLONG PreviousState OPTIONAL)
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
static PLSA_NOTIFICATION_ENTRY LsapGetNotificationEntry(PLSA_API_MSG pRequestMsg)
#define InitializeListHead(ListHead)
VOID LsapNotifyPolicyChange(POLICY_NOTIFICATION_INFORMATION_CLASS InformationClass)
NTSTATUS LsapRegisterNotification(PLSA_API_MSG pRequestMsg)
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
_In_ FILTER_INFORMATION_CLASS InformationClass
struct _LSA_NOTIFICATION_ENTRY * PLSA_NOTIFICATION_ENTRY
base of all file and directory entries
NTSYSAPI BOOLEAN NTAPI RtlAcquireResourceExclusive(_In_ PRTL_RESOURCE Resource, _In_ BOOLEAN Wait)