PdhVbOpenLog 函数

PdhVbOpenLog 函数打开指定的日志文件进行读取和写入。 此函数调用 PdhOpenLog

重要

本主题介绍的函数将来可能会更改或不可用。 相反,Microsoft 建议使用 性能计数器函数中所述的函数

函数 PdhVbOpenLog ( _ ByVal szLogFileName As LPCTSTR, _ ByVal dwAccessFlags As DWORD, _ ByVal lpdwLogType As LPDWORD, _ ByVal hQuery As PDH_HQUERY, _ ByVal dwMaxSize As DWORD, _ ByVal szUserCaption As LPCSTR, _ ByRef phLog As PDH_HLOG _ ) As DWORD

参数

szLogFileName [in]

指向指定要打开的日志文件名称的字符串的指针。

如果日志文件包含 SQL 数据,则日志文件的名称格式为 **SQL:DataSourceName!**LogFileName。 在这种情况下, lpdwLogType 参数的值PDH_LOG_TYPE_SQL。

dwAccessFlags [in]

打开日志文件时要指定的访问类型。 此参数的取值可为下列值之一:

含义
PDH_LOG_READ_ACCESS
为读取操作打开日志文件。
PDH_LOG_WRITE_ACCESS
为写入操作打开新的日志文件。
PDH_LOG_UPDATE_ACCESS
为写入操作打开现有的日志文件。

可以使用 OR 运算符和以下创建访问标志之一组合从上表中选择的值。

含义
PDH_LOG_CREATE_NEW
将创建具有指定名称的新日志文件。
PDH_LOG_CREATE_ALWAYS
将创建具有指定名称的新日志文件,并清除所有具有相同名称的现有日志文件。
PDH_LOG_OPEN_EXISTING
打开具有指定名称的现有日志文件。 如果不存在具有指定名称的日志文件,则这等于PDH_LOG_CREATE_NEW。
PDH_LOG_OPEN_ALWAYS
打开具有指定名称的现有日志文件,或创建具有指定名称的新日志文件。

lpdwLogType [in]

指向变量的指针,该变量指示要打开的日志文件的类型。 此参数的取值可为下列值之一:

含义
PDH_LOG_TYPE_UNDEFINED
未定义的日志文件格式。
PDH_LOG_TYPE_CSV
包含第一行中的列标题的文本文件,以及每个后续行中的各个数据示例。
PDH_LOG_TYPE_SQL
日志文件中的数据位于 SQL 中。
PDH_LOG_TYPE_TSV
与 PDH_LOG_TYPE_CSV 相同。
PDH_LOG_TYPE_BINARY
二进制日志文件格式。 包括循环日志文件。
PDH_LOG_TYPE_PERFMON
Perfmon 日志文件格式。

hQuery [in]

查询句柄。 此句柄由 PdhVbOpenQuery 函数返回。

如果要打开日志文件进行读取,则此参数可以为 NULL

dwMaxSize [in]

日志文件的最大大小(以字节为单位)。 仅当日志文件是限制大小或循环日志文件时,才使用此值。

szUserCaption [in]

指向指定日志文件的用户定义描述文字的字符串的指针。 日志文件描述文字通常描述日志文件的内容。 打开现有日志文件时,将忽略此参数的值。

phLog [in, ref]

指向接收打开的日志文件句柄的缓冲区的指针。

返回值

如果该函数成功,则返回 0。

如果函数失败,则返回值为 系统错误代码PDH 错误代码。 以下是可能的值。

返回代码 说明
PDH_INSUFFICIENT_BUFFER
请求的数据大于提供的缓冲区。 无法返回请求的数据。
PDH_INVALID_ARGUMENT
一个或多个字符串缓冲区的大小不正确。
PDH_INVALID_HANDLE
句柄不是有效的 PDH 对象。
PDH_LOG_FILE_OPEN_ERROR
无法打开指定的日志文件。
PDH_FILE_NOT_FOUND
找不到指定的文件。

备注

使用此函数将性能数据写入日志文件时,必须先使用 PdhVbOpenQuery 打开查询。

在调用此函数之前,必须有当前打开的查询,并且必须向其中添加所需的计数器。

请注意,Perfmon 格式的日志文件只能打开以供读取。

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]

Pdh.lib
DLL
Pdh.dll

另请参阅

PdhOpenLog

PdhVbGetLogFileSize

PdhVbUpdateLog