I'll assume your DLL is named "image.dll". Any arrays need to be marked as [In] or [Out]. Try this ...
[DllImport("image.dll", CallingConvention=CallingConvention.Cdecl,
ExactSpelling=true, SetLastError=false)]
public static extern int ImageSize([In] byte[] i_puc_Header, long i_ul_HeaderSize, [Out] ref UInt32 o_pul_UnHeaderSize);