[YAROTOWS] Reintegrate the branch. For a brighter future.
[reactos.git] / reactos / subsystems / win32 / win32k / ntuser / kbdlayout.c
index c43a6c2..a6ac6e6 100644 (file)
@@ -12,7 +12,7 @@
 
 /* INCLUDES ******************************************************************/
 
-#include <w32k.h>
+#include <win32k.h>
 
 #define NDEBUG
 #include <debug.h>
@@ -163,10 +163,7 @@ static BOOL UserLoadKbdDll(WCHAR *wsKLID,
       DPRINT("Loaded %wZ\n", &FullLayoutPath);
 
       RtlInitAnsiString( &kbdProcedureName, "KbdLayerDescriptor" );
-      LdrGetProcedureAddress((*(PDRIVERS*)phModule)->BaseAddress,
-                             &kbdProcedureName,
-                             0,
-                             (PVOID*)&layerDescGetFn);
+      layerDescGetFn = EngFindImageProcAddress(*phModule, "KbdLayerDescriptor");
 
       if(layerDescGetFn)
       {
@@ -199,7 +196,7 @@ static PKBL UserLoadDllAndCreateKbl(DWORD LocaleId)
    ULONG hKl;
    LANGID langid;
 
-   NewKbl = ExAllocatePool(PagedPool, sizeof(KBL));
+   NewKbl = ExAllocatePoolWithTag(PagedPool, sizeof(KBL), TAG_KEYBOARD);
 
    if(!NewKbl)
    {
@@ -212,7 +209,7 @@ static PKBL UserLoadDllAndCreateKbl(DWORD LocaleId)
    if(!UserLoadKbdDll(NewKbl->Name, &NewKbl->hModule, &NewKbl->KBTables))
    {
       DPRINT("%s: failed to load %x dll!\n", __FUNCTION__, LocaleId);
-      ExFreePool(NewKbl);
+      ExFreePoolWithTag(NewKbl, TAG_KEYBOARD);
       return NULL;
    }
 
@@ -228,7 +225,7 @@ static PKBL UserLoadDllAndCreateKbl(DWORD LocaleId)
       hKl |= 0xe001 << 16; /* FIXME */
    else hKl |= hKl << 16;
 
-   NewKbl->hkl = (HKL) hKl;
+   NewKbl->hkl = (HKL)(ULONG_PTR) hKl;
    NewKbl->klid = LocaleId;
    NewKbl->Flags = 0;
    NewKbl->RefCount = 0;
@@ -401,7 +398,7 @@ BOOL UserUnloadKbl(PKBL pKbl)
       //Unload the layout
       EngUnloadImage(pKbl->hModule);
       RemoveEntryList(&pKbl->List);
-      ExFreePool(pKbl);
+      ExFreePoolWithTag(pKbl, TAG_KEYBOARD);
    }
 
    return TRUE;
@@ -453,7 +450,7 @@ UserGetKeyboardLayout(
       return W32Thread->KeyboardLayout->hkl;
    }
 
-   Status = PsLookupThreadByThreadId((HANDLE)dwThreadId, &Thread);
+   Status = PsLookupThreadByThreadId((HANDLE)(DWORD_PTR)dwThreadId, &Thread);
    if(!NT_SUCCESS(Status))
    {
       SetLastWin32Error(ERROR_INVALID_PARAMETER);