I have done some PInvoke of native dlls but this one is beyond my capability.

The client of this driver (sx11.dll) has to declare a variable 'buffer' of type
Code:
typedef struct {                        //image buffer structure;
    HBUF hbuf;                          //handle to buffer;
    DWORD dwFrames;                     //number of frames in buffer;
    FRAME frame[SYS_FRAMES];            //array of FRAME structures;
} BUFFER;
Then a function has to be called which initializes this variable and allocates the 'frame'
array. This type is
Code:
typedef struct {                        //frame structure;
    LPBITMAPINFO lpbmi;                 //pointer to BITMAPINFO structure;
    void *lpvbits;			//pointer to image data;
} FRAME;
The native image acquisition function has to be called with the argument buffer.hbuf,
and it writes the image data into buffer.frame. My questions are:

1. How to translate the last BUFFER field 'FRAME frame[SYS_FRAMES]' into C#?
2. Call the acquisition function in a 'fixed' environment? How exactly?
3. How to copy lets say 'buffer.frame[1].lpvbits to a C# array byte[]?

Any suggestion is welcome.