Trabajar con archivos de registro
Para abrir un archivo de registro para leerlo, llame a PdhOpenQuery y especifique una ruta de acceso al archivo de registro. Para abrir un archivo de registro para escribirlo, debe llamar a PdhOpenLog. Para cerrar un archivo de registro, llame a PdhCloseQuery o PdhCloseLog en función de la función que usó para abrir el archivo de registro.
Lectura desde un archivo de registro
La lectura de datos de rendimiento de un archivo de registro es la misma que la lectura de datos de un origen en tiempo real: se abre una consulta, se agregan contadores a la consulta y se llama a PdhCollectQueryData para recopilar un ejemplo del archivo de registro. PdhCollectQueryData devuelve PDH_NO_MORE_DATA cuando llega al final del archivo de registro.
Cada ejemplo del archivo de registro contiene una marca de tiempo para cuando se recopiló y escribió originalmente en el archivo de registro. Para recuperar la marca de tiempo del primer y último ejemplo del archivo de registro, llame a la función PdhGetDataSourceTimeRange . Si desea limitar los ejemplos leídos del registro a un intervalo de tiempo específico, consulte Establecimiento de un intervalo de tiempo para una consulta.
Si no sabe qué objetos de rendimiento y contadores existen en el archivo de registro, puede llamar a PdhEnumObjects para determinar la lista de objetos. Dado un objeto, puede llamar a PdhEnumObjectItems o PdhExpandWildCardPath para recuperar una lista de las instancias y contadores del objeto contenidos en el archivo de registro.
Si llama a PdhEnumObjectItems, use las listas de instancias y contadores para crear una ruta de acceso para cada posible combinación de instancia y contador. Al llamar a PdhAddCounter para agregar el contador a la consulta, se producirá un error en la función si el archivo de registro no contiene la combinación especificada.
Si usa PdhExpandWildCardPath, puede crear una ruta de acceso que contenga un carácter comodín para el nombre y el contador de la instancia, por ejemplo, \object(*)\*. La función devuelve PDH_INVALID_PATH si el objeto no contiene una instancia. En este caso, llame a PdhExpandWildCardPath con un carácter comodín solo para contador, por ejemplo, \object\*.
Los sistemas operativos más recientes pueden leer los archivos de registro que se generaron en sistemas operativos más antiguos; sin embargo, los archivos de registro creados en Windows Vista y los sistemas operativos posteriores no se pueden leer en sistemas operativos anteriores.
Para obtener un ejemplo que lee datos de un archivo de registro, consulte Lectura de datos de rendimiento de un archivo de registro.
Lectura de varios archivos de registro
Si necesita crear una consulta que lea de varios archivos de registro, llame a PdhBindInputDataSource para enlazar los archivos de registro. A continuación, debe usar funciones PDH que terminan en "H", por ejemplo, PdhOpenQueryH.
Escritura en un archivo de registro
Antes de escribir en un archivo de registro, llame a PdhOpenQuery para crear una consulta y especificar el origen de los datos de rendimiento, ya sea en tiempo real o en un archivo de registro. A continuación, agregue los contadores que desea consultar.
Para abrir el archivo de destino, llame a PdhOpenLog. Especifique la consulta al abrir el archivo de registro. Para recopilar los datos de rendimiento y escribirlos en el archivo de registro, llame a PdhUpdateLog.
Si los datos del contador se escriben en un archivo de registro delimitado por comas (.csv) o delimitado por tabulaciones (.tsv) y la ruta de acceso contiene una instancia de comodín, la ruta de acceso se expande y solo las instancias que existen en el momento en que se expande la ruta de acceso se incluyen en el archivo de registro. Sin embargo, para los archivos de registro binarios (.blg) o SQL, el carácter comodín no se expande para que el archivo de registro contenga instancias que se crean durante el registro.
Para obtener un ejemplo que escribe datos en un archivo de registro, consulte Escritura de datos de rendimiento en un archivo de registro.
Compresión de un archivo de registro
Puede usar la función PdhComputeCounterStatistics para comprimir un archivo de registro. Por ejemplo, lea diez registros de un archivo de registro, llame a PdhComputeCounterStatistics para calcular el valor medio y, a continuación, escriba el valor medio en un archivo de registro de salida.
En el tema siguiente se proporciona información adicional sobre el uso de un archivo de registro.