Chamei com êxito LsaEnumerateAccountRights () do advapi32 em C #. Agora, como desmarcar a matriz de LSA_UNICODE_STRING que ele retorna?
É um ponteiro para uma variedade deLSA_UNICODE_STRING
estruturas. Encontrei algum código que faz o inverso, ou seja, cria umLSA_UNICODE_STRING
de uma string C #. Você pode ver isso na seção de código auxiliar abaixo.
O que eu tenho até e incluindo a chamada paraLsaEnumerateAccountRights()
Parece funcionar bem. Valores sensíveis são retornados para o ponteiro da matriz e para a contagem.
Estou sem saber como chegaràs aquelas cordas malditas. Ajuda por favor? Bonita por favor?
ATUALIZAR: função auxiliar de nobugz em sua resposta abaixo é quase certo, você só precisa dividir o comprimento porUnicodeEncoding.CharSize
. Graças a ele, agora posso ver a PRIMEIRA string no array. Veja as atualizações no final das duas seções de código abaixo.
Agora, como o submundo eu faço a aritmética dos ponteiros?
ATUALIZAÇÃO 2.5: Veja a resposta para o código de funcionamento. Perdi o antigo código "errado".