JNA — Дсжетдкнамеа

Я новичок в JNA, я хочу преобразовать метод DsGetDcName в JNA.

DWORD DsGetDcName(
  __in   LPCTSTR ComputerName,
  __in   LPCTSTR DomainName,
  __in   GUID *DomainGuid,
  __in   LPCTSTR SiteName,
  __in   ULONG Flags,
  __out  PDOMAIN_CONTROLLER_INFO *DomainControllerInfo
);

Я преобразовал вышеуказанную функцию в JNA. Я заменил вышеуказанные параметры следующим образом.

public static class GUID extends Structure {
    public int Data1;
    public short  Data2;
    public short  Data3;
    public byte  Data4[]= new byte[8];
}

public static class DOMAIN_CONTROLLER_INFO extends Structure { 
    public String DomainControllerName;
    public String DomainControllerAddress;
    public int DomainControllerAddressType;
    public GUID DomainGuid; // created Structure above
    public String DomainName;
    public String DnsForestName;
    public int Flags;
    public String DcSiteName;
    public String ClientSiteName;
}

int DsGetDCName(
    String strComputerName,
    String strDomainName,
    GUID DomainGuid, // static class created extending with structure
    String strSiteName,
    int iFlags,
    DOMAIN_CONTROLLER_INFO  DomainControllerInfo // static class created extending with structure
);

Приведенная выше функция возвращает 997 Error (ERROR IO PENDING). Объявление метода верное. Может ли кто-нибудь помочь в этом вопросе? Заранее спасибо.

С Уважением

Паван Кумар А.


person Community    schedule 30.12.2009    source источник
comment
Функция успешно возвращается? Типы GUID и DOMAIN_CONTROLLER_INFO должны быть указателями на структуры...   -  person Mark Elliot    schedule 06.01.2010


Ответы (1)


Это реализовано в JNA 3.2.7 как com.sun.jna.platform.win32.Netapi32.DsGetDcName. Используйте Netapi32Util.DsGetDcName, который является упрощенной оболочкой.

person Community    schedule 01.10.2010