Я успешно вызвал LsaEnumerateAccountRights () из C # в advapi32. Теперь, как мне распаковать массив LSA_UNICODE_STRING, который он возвращает?
Это's указатель на массивLSA_UNICODE_STRING
структур. Я нашел некоторый код, который делает обратное, т.е. создаетLSA_UNICODE_STRING
из строки C #. Вы можете увидеть это в разделе кода помощника ниже.
Что у меня есть до звонкаLsaEnumerateAccountRights()
Кажется, работает просто отлично. Разумные значения возвращаются для указателя массива и для подсчета.
Я в растерянности относительно того, как получитьв эти взорванные струны. Помогите, пожалуйста? Довольно пожалуйста?
ОБНОВИТЬ: nobugz»Функция помощника в его ответе ниже почти права, вам нужно только разделить длину наUnicodeEncoding.CharSize
, Благодаря ему теперь я вижу первую строку в массиве. Смотрите обновления в конце обоих разделов кода ниже.
Теперь, как преисподней я делаю арифметику указателей?
ОБНОВЛЕНИЕ 2.5: Смотрите ответ для действующего кода. Я потерял староенеправильно" код.