La conversion de la Chaîne de Pointeur pour JNA

Je suis en train d'utiliser JNA pour interroger les autorisations effectives d'un fichier dans Windows. Finalement, j'ai l'intention sur l'utilisation de la GetEffectiveRightsFromAcl fonction, mais pour ce faire, j'ai besoin de fournir un pointeur vers une peuplé SYNDIC de la structure. La JNA Plate-forme (platform.jar) ne semble pas définir cette structure, donc j'essaye de le définir moi-même au lieu. Voici ce que j'ai à ce jour:

public static class TRUSTEE extends Structure {
    public TRUSTEE() {
        super();
    }
    public TRUSTEE(Pointer p) {
        super(p);
        read();
    }

    public Pointer pMultipleTrustee;
    public int MultipleTrusteeOperation;
    public int TrusteeForm;
    public int TrusteeType;
    public Pointer ptstrName;
}

Je suis en train de remplir la structure comme ceci:

private TRUSTEE createTrusteeForCurrentUser() {
    TRUSTEE result = new TRUSTEE();
    result.TrusteeForm = TRUSTEE_FORM.TRUSTEE_IS_NAME;
    result.TrusteeType = TRUSTEE_TYPE.TRUSTEE_IS_USER;

    String strName = "CURRENT_USER";
    //How can I set result.ptstrName using strName?
}

Google Groupes thread recommande l'utilisation de String champs dans les structures lorsqu'un char * est appelé pour. Cependant, je ne pense pas que ce soit approprié à ma situation, compte tenu de la ptstrName champ est permis à point pour les différents types de choses, en fonction de la valeur de TrusteeForm. Donc, je pense que j'ai un peu besoin de les convertir à partir de String à Pointer à la place. J'ai trouvé le NativeString classe dans la JNA, qui pourrait fonctionner, sauf que c'est un colis-privé de classe.

Quelle est la méthode recommandée pour convertir un Java String à un format natif et d'obtenir un Pointer - t-il? Je suis même en utilisant le bon type de données pour la TRUSTEE struct? Je suis un peu nouveau pour JNA, donc veuillez m'excuser si je suis absent quelque chose d'évident.

Mise à jour

J'ai trouvé une solution à mon problème, mais si quelqu'un a une meilleure solution que j'ai tout de même envie de l'entendre.

InformationsquelleAutor Kevin K | 2012-04-15