2009-12-30 12 views
0

Je suis nouveau à JNA, je veux convertir la méthode DsGetDcName en JNA.JNA - DsGetDcNameA

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

j'ai converti la fonction ci-dessus pour JNA I ci-dessus remplacée paramètres comme suit

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 
); 

La fonction ci-dessus retourne 997 Error (ERROR IO PENDING). La déclaration de méthode est correcte. Peut-on aider sur ce problème? Merci d'avance.

Cordialement

Pavan Kumar A.

+0

La fonction retourne-t-elle avec succès? Les types 'GUID' et' DOMAIN_CONTROLLER_INFO' devraient être des pointeurs vers les structures ... –

Répondre

2

Ceci est mis en œuvre dans la JNA 3.2.7 comme com.sun.jna.platform.win32.Netapi32.DsGetDcName. Utilisez Netapi32Util.DsGetDcName qui est un wrapper simplifié.