Marshal.PtrToStructure throwing System.ArgumentException error

Próbuję uzyskać KBDLLHOOKSTRUCT z lParam na haku na klawiaturze.

    private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
    {

        KBDLLHOOKSTRUCT kbd = new KBDLLHOOKSTRUCT();
        Marshal.PtrToStructure(lParam, kbd); // Throws System.ArguementException
        ...

Niestety PtrToStructure rzuca dwa

A first chance exception of type 'System.ArgumentException' occurred in myprogram.exe

błędy przy każdym naciśnięciu klawisza. Zatrzymuje również tę metodę na swoich torach.

MSNDA mówi:http://msdn.microsoft.com/en-us/library/4ca6d5z7.aspx

ArgumentException when:

The structureType parameter layout is not sequential or explicit.

-or-

The structureType parameter is a generic type.

Co mogę tutaj zrobić, aby to działało? LParam wychodzi prosto z haka na klawiaturze, więc spodziewałbym się, że będzie poprawny. Czy któryś z tych błędów ma tutaj sens i co mogę zrobić, aby to naprawić?

questionAnswers(1)

yourAnswerToTheQuestion