[NDK][NTOS] Add global definition of INIT_FUNCTION/INIT_SECTION (#779)
[reactos.git] / ntoskrnl / config / cmhook.c
index cf12c26..1ba3c5b 100644 (file)
@@ -32,9 +32,9 @@ typedef struct _REGISTRY_CALLBACK
 
 /* PRIVATE FUNCTIONS *********************************************************/
 
+INIT_FUNCTION
 VOID
 NTAPI
-INIT_FUNCTION
 CmpInitCallback(VOID)
 {
     ULONG i;
@@ -116,31 +116,31 @@ CmRegisterCallback(IN PEX_CALLBACK_FUNCTION Function,
     ASSERT(Function && Cookie);
 
     Callback = ExAllocatePoolWithTag(PagedPool,
-                                   sizeof(REGISTRY_CALLBACK),
-                                   'bcMC');
-    if (Callback != NULL)
+                                     sizeof(REGISTRY_CALLBACK),
+                                     'bcMC');
+    if (Callback == NULL)
     {
-        /* initialize the callback */
-        ExInitializeRundownProtection(&Callback->RundownRef);
-        Callback->Function = Function;
-        Callback->Context = Context;
-        Callback->PendingDelete = FALSE;
+        return STATUS_INSUFFICIENT_RESOURCES;
+    }
 
-        /* add it to the callback list and receive a cookie for the callback */
-        ExAcquireFastMutex(&CmiCallbackLock);
+    /* initialize the callback */
+    ExInitializeRundownProtection(&Callback->RundownRef);
+    Callback->Function = Function;
+    Callback->Context = Context;
+    Callback->PendingDelete = FALSE;
 
-        /* FIXME - to receive a unique cookie we'll just return the pointer to the
-           callback object */
-        Callback->Cookie.QuadPart = (ULONG_PTR)Callback;
-        InsertTailList(&CmiCallbackHead, &Callback->ListEntry);
+    /* add it to the callback list and receive a cookie for the callback */
+    ExAcquireFastMutex(&CmiCallbackLock);
 
-        ExReleaseFastMutex(&CmiCallbackLock);
+    /* FIXME - to receive a unique cookie we'll just return the pointer to the
+       callback object */
+    Callback->Cookie.QuadPart = (ULONG_PTR)Callback;
+    InsertTailList(&CmiCallbackHead, &Callback->ListEntry);
 
-        *Cookie = Callback->Cookie;
-        return STATUS_SUCCESS;
-    }
+    ExReleaseFastMutex(&CmiCallbackLock);
 
-    return STATUS_INSUFFICIENT_RESOURCES;
+    *Cookie = Callback->Cookie;
+    return STATUS_SUCCESS;
 }
 
 /*
@@ -180,7 +180,7 @@ CmUnRegisterCallback(IN LARGE_INTEGER Cookie)
                 ExReleaseFastMutex(&CmiCallbackLock);
 
                 /* free the callback */
-                ExFreePool(CurrentCallback);
+                ExFreePoolWithTag(CurrentCallback, 'bcMC');
                 return STATUS_SUCCESS;
             }
             else