Frage

In Windows ist es möglich, Geräte und Volumes über die Öffnung des Volumens durch CreateFile(). Ich habe das schon einmal erfolgreich verwendet ReadFile() Aus Geräten, aber jetzt möchte ich auf Speichermapping wechseln. Im folgenden Code erhalte ich INVALID_HANDLE_VALUE für den Wert von b, und c ist eingestellt auf 87, ERROR_INVALID_PARAMETER.

HANDLE a = ::CreateFileA("\\\\.\\h:", GENERIC_READ, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_READONLY | FILE_FLAG_NO_BUFFERING, NULL);
HANDLE b = ::CreateFileMappingA(a, NULL, PAGE_READONLY, 0, 0, NULL);
DWORD c = ::GetLastError();

Wie kann ich das zum Laufen bringen?

War es hilfreich?

Lösung

Du kannst nicht. CreateFilemapping kann nur eine Zuordnung zu einer Datei erstellen. Schauen Sie sich den Unterschied in der Dokumentation zwischen dem HFile -Parameter für an Readdatei und für CreateFilemapping. Für ReadFile listet es alle verschiedenen Arten von Handlungen auf (einschließlich Geräte), um Dateien nur zu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top