[NETAPI32] Implement NetRegisterDomainNameChangeNotification() and NetUnregisterDomai...
authorEric Kohl <eric.kohl@reactos.org>
Sat, 15 Dec 2018 16:17:14 +0000 (17:17 +0100)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 15 Dec 2018 16:18:32 +0000 (17:18 +0100)
dll/win32/netapi32/misc.c
dll/win32/netapi32/netapi32.spec

index 650068f..0d236e2 100644 (file)
@@ -18,6 +18,38 @@ WINE_DEFAULT_DEBUG_CHANNEL(netapi32);
 
 /* FUNCTIONS *****************************************************************/
 
 
 /* FUNCTIONS *****************************************************************/
 
+NET_API_STATUS
+WINAPI
+NetRegisterDomainNameChangeNotification(
+    _Out_ PHANDLE NotificationEventHandle)
+{
+    HANDLE EventHandle;
+    NTSTATUS Status;
+
+    TRACE("NetRegisterDomainNameChangeNotification(%p)\n",
+          NotificationEventHandle);
+
+    if (NotificationEventHandle == NULL)
+        return ERROR_INVALID_PARAMETER;
+
+    EventHandle = CreateEventW(NULL, FALSE, FALSE, NULL);
+    if (EventHandle == NULL)
+        return GetLastError();
+
+    Status = LsaRegisterPolicyChangeNotification(PolicyNotifyDnsDomainInformation,
+                                                 NotificationEventHandle);
+    if (!NT_SUCCESS(Status))
+    {
+        CloseHandle(EventHandle);
+        return NetpNtStatusToApiStatus(Status);
+    }
+
+    *NotificationEventHandle = EventHandle;
+
+    return NERR_Success;
+}
+
+
 NET_API_STATUS
 WINAPI
 NetStatisticsGet(
 NET_API_STATUS
 WINAPI
 NetStatisticsGet(
@@ -83,6 +115,26 @@ NetStatisticsGet(
 }
 
 
 }
 
 
+NET_API_STATUS
+WINAPI
+NetUnregisterDomainNameChangeNotification(
+    _In_ HANDLE NotificationEventHandle)
+{
+    NTSTATUS Status;
+
+    TRACE("NetUnregisterDomainNameChangeNotification(%p)\n",
+          NotificationEventHandle);
+
+    if (NotificationEventHandle == NULL)
+        return ERROR_INVALID_PARAMETER;
+
+    Status = LsaUnregisterPolicyChangeNotification(PolicyNotifyDnsDomainInformation,
+                                                   NotificationEventHandle);
+
+    return NetpNtStatusToApiStatus(Status);
+}
+
+
 NET_API_STATUS
 WINAPI
 NetpNtStatusToApiStatus(
 NET_API_STATUS
 WINAPI
 NetpNtStatusToApiStatus(
index d573ef5..dda3b36 100644 (file)
 @ stdcall NetMessageNameEnum(wstr long ptr long ptr ptr ptr)
 @ stdcall NetMessageNameGetInfo(wstr wstr long ptr)
 @ stdcall NetQueryDisplayInformation(wstr long long long long ptr ptr)
 @ stdcall NetMessageNameEnum(wstr long ptr long ptr ptr ptr)
 @ stdcall NetMessageNameGetInfo(wstr wstr long ptr)
 @ stdcall NetQueryDisplayInformation(wstr long long long long ptr ptr)
-@ stub NetRegisterDomainNameChangeNotification
+@ stdcall NetRegisterDomainNameChangeNotification(ptr)
 @ stub NetRemoteComputerSupports
 @ stdcall NetRemoteTOD(wstr ptr)
 @ stdcall NetRemoveAlternateComputerName(wstr wstr wstr wstr long)
 @ stub NetRemoteComputerSupports
 @ stdcall NetRemoteTOD(wstr ptr)
 @ stdcall NetRemoveAlternateComputerName(wstr wstr wstr wstr long)
 @ stdcall NetShareSetInfo(wstr wstr long ptr ptr)
 @ stdcall NetStatisticsGet(wstr wstr long long ptr)
 @ stdcall NetUnjoinDomain(wstr wstr wstr long)
 @ stdcall NetShareSetInfo(wstr wstr long ptr ptr)
 @ stdcall NetStatisticsGet(wstr wstr long long ptr)
 @ stdcall NetUnjoinDomain(wstr wstr wstr long)
-@ stub NetUnregisterDomainNameChangeNotification
+@ stdcall NetUnregisterDomainNameChangeNotification(ptr)
 @ stdcall NetUseAdd(wstr long ptr ptr)
 @ stdcall NetUseDel(wstr wstr long)
 @ stdcall NetUseEnum(wstr long ptr long ptr ptr ptr)
 @ stdcall NetUseAdd(wstr long ptr ptr)
 @ stdcall NetUseDel(wstr wstr long)
 @ stdcall NetUseEnum(wstr long ptr long ptr ptr ptr)