Die Dokumentation für die neue Vista-API besagt, dass die PowerEnumerate-Funktion zum Aufzählen von Energieschemas, Schemaeinstellungen und einer Fülle von Informationen verwendet werden kann. Die letzten beiden Parameter sind Buffer und BufferSize ist unklar, welche Strukturen oder Datenlayout/-format für die Daten verwendet wird, die von der API im Puffer zurückgegeben werden?Welche Strukturen/Daten gibt die PowerEnumerate-Funktion zurück
1
A
Antwort
2
Der Ausgabepuffer ist eine GUID. Sie können diese GUID verwenden, um zusätzliche Aufrufe der Power * -Funktionen vorzunehmen (d. H. Rekursiv die Struktur zu durchlaufen, Einstellungsnamen und -werte abzufragen usw.).
Zum Beispiel der folgende Code einige Einstellungsnamen von den Plattenenergieeinstellungen in der aktuellen Energieschema aufzählt:
GUID *scheme; if(ERROR_SUCCESS == PowerGetActiveScheme(NULL, &scheme)) { GUID buffer; DWORD bufferSize = sizeof(buffer); for(int index = 0; ; index++) { if(ERROR_SUCCESS == PowerEnumerate( NULL, scheme, &GUID_DISK_SUBGROUP, ACCESS_INDIVIDUAL_SETTING, index, (UCHAR*)&buffer, &bufferSize)) { UCHAR displayBuffer[1024]; DWORD displayBufferSize = sizeof(displayBuffer); if(ERROR_SUCCESS == PowerReadFriendlyName( NULL, scheme, &GUID_DISK_SUBGROUP, &buffer, displayBuffer, &displayBufferSize)) { wprintf(L"%s\n", (wchar_t*)displayBuffer); } } } }
Wie Sie die Schritte sind sehen:
- die aktuelle Energieschema erhalten
- Die Laufwerkseinstellungen im aktuellen Schema auflisten
- Den Anzeigenamen jeder aufgezählten Einstellung drucken
Auf meinem Rechner die Ausgabe:
Turn off hard disk after Hard disk burst ignore time
Hoffentlich hilft erhalten Sie in die richtige Richtung.
Dies ist kein Produktionsqualitätscode, der kleine Größen und optimistische Puffergrößen gegenüber Robustheit bevorzugt.
Verwandte Themen
- 1. Welche Ganzzahl gibt DateTime.CompareTo tatsächlich zurück?
- 2. Welche Adresse gibt diese Zeigerzuweisung zurück?
- 3. Welche Funktion gibt einen Drupal-6-gültigen Passwort-Hash zurück?
- 4. Welche Art von Dateitypen gibt PHP getimagesize() zurück?
- 5. SharedPreferences gibt null zurück, egal welche Methode ich verwende
- 6. Welche ldap-Abfrage gibt die Benutzerobjekte zurück, die jetzt aus dem Active-Directory entfernt wurden?
- 7. Welche Möglichkeiten gibt es für die Länderfilterung?
- 8. preferences.getKey.equals() gibt false zurück
- 9. db2_num_rows() gibt -1 zurück
- 10. Welche Eigenschaft gibt den Wert einer Zeichenfolge aus einem Zeichenfolgenobjekt (für die Bindung) zurück?
- 11. CameraUpdateFactory.newLatLngZoom gibt null zurück
- 12. GetVirtualPath gibt die erste Route zurück
- 13. Warum gibt die Eigenschaft TIdMailBox.UnseenMsgs 0 zurück?
- 14. Die InvokeScript() - Methode gibt null zurück
- 15. Warum gibt die Funktion gmtime() NULL zurück?
- 16. Warum gibt dis.dis (None) die Ausgabe zurück?
- 17. addGlobalMonitorForEventsMatchingMask gibt nur die Mausposition zurück
- 18. Gibt die Exit-Funktion false zurück?
- 19. Die gespeicherte Prozedur gibt einen VarChar zurück
- 20. Warum gibt die listFiles() -Methode null zurück?
- 21. Android getIntent() gibt die erste Absicht zurück
- 22. CloudKit gibt die aktuellsten Daten nicht zurück
- 23. Welcher Typ gibt die Feldmethode zurück?
- 24. Die decodeFile von BitmapFactory gibt null zurück
- 25. Warum gibt die statische Klassentypfunktion null zurück?
- 26. get_home_url() gibt einfach die aktuelle URL zurück
- 27. SQL gibt immer die gleichen Ergebnisse zurück
- 28. Wann gibt Socket.Receive die Daten zurück?
- 29. sizewithattributes gibt die korrekte Größe nicht zurück
- 30. Was gibt die Liferay AutoLogin.login() API zurück?
Mann, +1, weil dies die hässlichste API-Dokumentation sein muss, die ich jemals in MSDN gesehen habe. Ich kann nicht für das Leben von mir herausfinden, wie man diesen Puffer benutzt, außer vielleicht, es in einer Uhr zu untersuchen und zu versuchen, wenn es eine Schnur oder eine Guid oder etwas ist. –