Elizabeth Figura (@zfigura) commented about dlls/ntoskrnl.exe/pnp.c:
- if (!SetupDiOpenDeviceInfoW( set, device_instance_id, NULL, 0, &sp_device ))
- {
ERR( "Failed to open device, error %#lx.\n", GetLastError() );
SetupDiDestroyDeviceInfoList( set );
return GetLastError();
- }
- if (!SetupDiGetDevicePropertyW( set, &sp_device, property_key, property_type, data, size, required_size, flags ))
- {
DWORD err = GetLastError();
if (err != ERROR_INSUFFICIENT_BUFFER)
ERR( "Failed to get device property, error %#lx.\n", err);
SetupDiDestroyDeviceInfoList( set );
return GetLastError() == ERROR_SUCCESS
? (err == ERROR_INSUFFICIENT_BUFFER ? STATUS_BUFFER_TOO_SMALL : err)
: GetLastError();
This is checking the last error from SetupDiDestroyDeviceInfoList(), which I don't think there's really any reason to do. We don't expect that to ever fail.