Sie sind nicht angemeldet.
Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
This makes me think that this change could be implemented in a firmware update. Or, if aquacomputer intentionally sets the device to "removable", perhaps aquacomputer can provide an optional firmware to users who do not want this functionality, preferring instead to have the "Removable" set to FALSE. Maybe this is something aquacomputer engineers can consider, it would be great to have this device absent from the removable device list
Zitat
Hi,
Please understand that the Safely Remove hardware functionality enables customers to make sure that their device is ready for removal. If a device is identified as a removable device, it should be listed in "Safely Remove Hardware and Eject Media".
Based on my research, whether the device will be listed depends on how the device is designed. I would like to share the following documents with you:
Container IDs Generated from the Removable Device Capability
DEVICE_CAPABILITIES
(From this document, please note the section “Removable” and “SurpriseRemovalOK”. “If Removable is set to TRUE, the device is displayed in the Unplug or Eject Hardware program, unless SurpriseRemovalOK is also set to TRUE.”)
Container IDs Generated from a Removable Device Capability Override
Therefore, as I know there may be no way to hide the device from "Safely Remove Hardware and Eject Media", unless the design for the device is changed. If you thought a device should not be listed, it is also recommended that you contact its manufacture.
Thanks.
Nicholas Li - MSFT
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »exploiteddna« (17. September 2020, 07:22)
nVidia has solved the driver problem with new drivers, so what should Aquacomputer do now, their devices all use the Windows 10 driver from Microsoft!People have connected to internal USB AiO's without this notice.
I have connected CORSAIR PSU too without this notice.
Only D5 NEXT showing this message - Safely Remove Hardware.
Sebastian do you still think this problem must fix Microsoft?
This problem had nVidia tooand they fixed it with new drivers. No Microsoft.
![]() |
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
#include <iostream> #include <windows.h> #include <initguid.h> #include <devpkey.h> #include <setupapi.h> DEFINE_GUID(GUID_CLS_WINUSB, 0x88BAE032, 0x5A81, 0x49F0, 0xBC, 0x3D, 0xA4, 0xFF, 0x13, 0x82, 0x16, 0xD6); int main(int argc, char **argv) { HDEVINFO deviceInfoSet = SetupDiGetClassDevsW(&GUID_CLS_WINUSB, L"USB", NULL, DIGCF_PRESENT); if (deviceInfoSet == INVALID_HANDLE_VALUE) { std::cout << "Failed enumarating devices"; return 1; } int deviceInfoIndex = 0; SP_DEVINFO_DATA spDevinfoData = {0}; spDevinfoData.cbSize = sizeof(spDevinfoData); std::cout << "Devices: " << std::endl; while (SetupDiEnumDeviceInfo(deviceInfoSet, deviceInfoIndex, &spDevinfoData)) { BYTE buffer[256] = {0}; std::wcout << std::wstring(reinterpret_cast<WCHAR*>(buffer), StringFromGUID2(spDevinfoData.ClassGuid, reinterpret_cast<WCHAR*>(buffer), sizeof(buffer) / sizeof(WCHAR))) << ":"; DEVPROPTYPE dataType; if (SetupDiGetDevicePropertyW(deviceInfoSet, &spDevinfoData, &DEVPKEY_Device_FriendlyName, &dataType, buffer, sizeof(buffer) / sizeof(WCHAR), NULL, 0)) { std::wcout << std::wstring(reinterpret_cast<WCHAR*>(buffer)); } if (SetupDiGetDevicePropertyW(deviceInfoSet, &spDevinfoData, &DEVPKEY_Device_SafeRemovalRequiredOverride, &dataType, buffer, 1, NULL, 0)) { std::cout << ": Override=" << (buffer[0] != DEVPROP_FALSE); } dataType = DEVPROP_TYPE_BOOLEAN; buffer[0] = DEVPROP_FALSE; if (SetupDiSetDevicePropertyW(deviceInfoSet, &spDevinfoData, &DEVPKEY_Device_SafeRemovalRequiredOverride, dataType, buffer, 1, 0)) { std::cout << ": Override set"; } else { std::cout << ": Override not set (" << GetLastError() << ")"; } std::cout << std::endl; ++deviceInfoIndex; } SetupDiDestroyDeviceInfoList(deviceInfoSet); return 0; } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »AterIgnis« (9. März 2023, 00:34)
-