Я успешно вызвал LsaEnumerateAccountRights () из C # в advapi32. Теперь, как мне распаковать массив LSA_UNICODE_STRING, который он возвращает?

Это's указатель на массивLSA_UNICODE_STRING структур. Я нашел некоторый код, который делает обратное, т.е. создаетLSA_UNICODE_STRING из строки C #. Вы можете увидеть это в разделе кода помощника ниже.

Что у меня есть до звонкаLsaEnumerateAccountRights() Кажется, работает просто отлично. Разумные значения возвращаются для указателя массива и для подсчета.

Я в растерянности относительно того, как получитьв эти взорванные струны. Помогите, пожалуйста? Довольно пожалуйста?

ОБНОВИТЬ: nobugz»Функция помощника в его ответе ниже почти права, вам нужно только разделить длину наUnicodeEncoding.CharSize, Благодаря ему теперь я вижу первую строку в массиве. Смотрите обновления в конце обоих разделов кода ниже.

Теперь, как преисподней я делаю арифметику указателей?

ОБНОВЛЕНИЕ 2.5: Смотрите ответ для действующего кода. Я потерял староенеправильно" код.

Ответы на вопрос(2)

Ваш ответ на вопрос