Konvertieren eines Strings in einen Zeiger für JNA

Ich versuche, JNA zu verwenden, um die effektiven Berechtigungen für eine Datei in Windows abzufragen. Irgendwann habe ich vor, das zu verwendenGetEffectiveRightsFromAcl-Funktion, aber dazu muss ich einen Zeiger auf ein gefülltes bereitstellenTRUSTEE-Struktur. Die JNA-Plattform (platform.jar) scheint diese Struktur nicht zu definieren, daher versuche ich, sie selbst zu definieren. Folgendes habe ich bisher:

<code>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;
}
</code>

Ich versuche, die Struktur wie folgt zu füllen:

<code>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?
}
</code>

Dieser Google Groups-Thread empfiehlt die Verwendung vonString Felder in Strukturen, wenn achar * ist angesagt. Ich denke jedoch nicht, dass dies in meiner Situation angemessen ist, wenn man bedenkt, dassptstrName Feld darf auf verschiedene Arten von Dingen zeigen, abhängig vom Wert vonTrusteeForm. Also, ich denke, ich muss irgendwie konvertierenString zuPointer stattdessen. ich fand dieNativeString Klasse in JNA, die funktionieren würde, außer es ist eine Paket-private Klasse.

Was ist der empfohlene Weg, um ein Java zu konvertierenString in ein natives Format und erhalten aPointer dazu? Benutze ich überhaupt den richtigen Datentyp für dieTRUSTEE Struktur? Ich bin etwas neu in JNA, entschuldigen Sie mich bitte, wenn mir etwas Offensichtliches fehlt.

Aktualisieren

Ich habe eine Lösung für mein Problem gefunden, aber wenn jemand eine bessere Lösung hat, würde ich sie immer noch gerne hören.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage