CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExW(
_In_ LPGUID ClassGuid,
_Out_writes_opt_(*pulLength) LPWSTR Buffer,
_Inout_ PULONG pulLength,
_In_ ULONG ulFlags,
_In_opt_ HMACHINE hMachine
);
这个函数的作用是获取指定设备类 GUID 的友好名称。其中参数含义如下:
- ClassGuid: 指向设备类的 GUID 的指针。
- Buffer: 指向接收设备类友好名称的缓冲区的指针。可以为NULL,用于查询所需缓冲区大小。
- pulLength: 指向一个变量,用于输入缓冲区大小和输出实际缓冲区大小。
- ulFlags: 保留,必须为0。
- hMachine: 机器句柄,指示函数在哪台机器上执行。可以为 NULL,表示本地机器。
示例用法:
#include <windows.h>
#include <Cfgmgr32.h>
#include <tchar.h>
int main() {
CONFIGRET cr;
GUID classGuid = { /* your class GUID here */ };
ULONG bufferSize = 0;
// Query the required buffer size
cr = CM_Get_Class_Name_ExW(&classGuid, NULL, &bufferSize, 0, NULL);
if (cr != CR_SUCCESS && cr != CR_BUFFER_SMALL) {
// Handle error
return 1;
}
// Allocate buffer
LPWSTR buffer = (LPWSTR)malloc(bufferSize * sizeof(WCHAR));
if (buffer == NULL) {
// Handle memory allocation error
return 1;
}
// Get the class name
cr = CM_Get_Class_Name_ExW(&classGuid, buffer, &bufferSize, 0, NULL);
if (cr == CR_SUCCESS) {
// Use the class name
_tprintf(_T("Class Name: %s\n"), buffer);
} else {
// Handle error
}
// Cleanup
free(buffer);
return 0;
}
请确保在使用时将 classGuid 替换为实际的设备类 GUID。
转载请注明出处:http://www.zyzy.cn/article/detail/24293/Win32 API/Cfgmgr32.h/CM_Get_Class_Name_ExW