Я пытаюсь маршалировать NdisGetCurrentSystemTime
результат в программу на C # через ioctl.
LARGE_INTEGER data;
NdisGetCurrentSystemTime (&data );
marshal_data->time = (UINT64)(data.QuadPart / 10^6);
DBGPRINT(("Time: %64u", marshal_data->time));
На стороне получателя C # поле времени определяется как uint64;есть также пара других полей uint64 в структуре маршала.Однако при выполнении
String.Format(("Time was {0}", recv_data->time))
я получаю неожиданно большое число, которое отличается от числа в DBGPRINT.
C #:
[StructLayout(LayoutKind.Sequential)]
...
public UInt64 time
C:
struct _marshalme {
...
UINT64 time
...
}
Что-нибудь странное с порядком байтов?