Я пытаюсь отобразить функцию Win32 EnumJobs в JNA. Метод имеет следующую подпись:
BOOL EnumJobs(
__in HANDLE hPrinter,
__in DWORD FirstJob,
__in DWORD NoJobs,
__in DWORD Level,
__out LPBYTE pJob,
__in DWORD cbBuf,
__out LPDWORD pcbNeeded,
__out LPDWORD pcReturned
);
Я выяснил большинство из них, за исключением pJob LPBYTE, который согласно документации является указателем на буфер, который получает массив структур JOB_INFO. Я не могу понять, как правильно сделать это отображение. Пока что у меня есть:
boolean EnumJobs(HANDLE hPrinter, DWORD FirstJob, DWORD NoJobs, DWORD Level, JOB_INFO_2[] pJob, DWORD cbBuf, IntByReference pcbNeeded, IntByReference pcReturned );
но я получаю IllegalArgumentException: не могу определить размер вложенной структуры: не могу создать экземпляр класса com.sun.jna.structure (java.lang.InstantiationException). Любое понимание того, как это должно отображаться и обрабатывать, может с благодарностью.