Не совсем, но в некоторых случаях мы можем сделать правильное предположение.
RegQueryValue
Операция в Process Monitor , по существу соответствует RegQueryValueEx
функции при вызове. У этой функции есть параметр с именем lpType
, но это ...
Указатель на переменную, которая получает код, указывающий тип данных, хранящихся в указанном значении.
Акцент мой. Это делается для того, чтобы приложениям можно было узнать тип полученного ими значения. ( RegQueryValueEx
не заботится о типах данных, он просто передает байты. Задача программы - интерпретировать байты.) Даже если программа по какой-то причине указала тип, Process Monitor не сообщает значение при вводе функции, только при успешный выход.
Это, однако, сообщает «длина». По непонятным причинам это не то lpcbData
значение, которое приложение предоставляет для определения размера буфера для результата - в 64-битной системе нужно вычесть 12, чтобы получить оригинал. Значение DWord занимает 4 байта, значение QWord занимает 8 байтов, а все остальные виды имеют переменную длину. (Программы могут также вообще не подготавливать память перед вызовом функции, просто чтобы проверить, существует ли значение.) Поэтому, если «длина», сообщаемая Process Monitor, равна 16, программа ожидает 4-байтовый фрагмент данных, что почти конечно DWord.