Não exatamente, mas podemos adivinhar em alguns casos.
A operação RegQueryValue
no Process Monitor corresponde essencialmente ao RegQueryValueEx
função sendo chamada. Essa função tem um parâmetro chamado lpType
, mas é ...
A pointer to a variable that receives a code indicating the type of data stored in the specified value.
Ênfase minha. Está lá para que as aplicações possam ser informadas do tipo do valor que receberam. ( RegQueryValueEx
não se preocupa com tipos de dados, apenas passa bytes. O trabalho do programa é interpretar os bytes.) Mesmo que um programa tenha especificado o tipo por algum motivo, o Process Monitor não reporta o valor na entrada da função. , apenas na saída bem sucedida.
No entanto, ele informa "comprimento". Por razões não claras, esse não é realmente o valor lpcbData
que o aplicativo fornece para especificar o tamanho do buffer para o resultado - em um sistema de 64 bits, é necessário subtrair 12 para obter o original. Um valor DWord ocupa 4 bytes, um valor QWord ocupa 8 bytes e todos os outros tipos são de tamanho variável. (Programas também podem preparar nenhuma memória antes de chamar a função apenas para verificar se o valor existe.) Portanto, se o "comprimento" relatado pelo Process Monitor for 16, o programa está esperando um bloco de dados de 4 bytes, que é quase certamente um DWord.