0

我找到了一些设备管理器信息的示例代码,我尝试写在 txt 文件上,但那里会停止工作。

我不知道这个问题的根本原因是什么。

以下链接是原始示例代码。 http://white5168.blogspot.com/2013/05/drivercmgetdevnodestatus.html#.W1FLpdIzaM9

下面的代码是我添加的地方。请帮忙检查。

                while (!SetupDiGetDeviceRegistryProperty(hDevInfo,
                    &DeviceInfoData,
                    ucSPDRP[j],
                    &DataType,
                    (PBYTE)Buffer,
                    BufferSize,
                    &BufferSize)) {
                    if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
                    {
                        // Change the buffer size.
                        if (Buffer) LocalFree(Buffer);
                        Buffer = (LPSTR)LocalAlloc(LPTR, BufferSize * 2);
                    }
                    else
                        break;// Insert error handling here.
                }


                    file << cStatus[j];
                    file << (const char *)Buffer << "\n";
                    file.flush();

                }
                printf("%s : %s\n", cStatus[j], (const char *)Buffer);
                if (Buffer) LocalFree(Buffer);
4

0 回答 0