Der folgende Code funktioniert unter einem PC, aber nicht auf einem anderen PC. Beide PCs haben Windows 7 als Betriebssystem.Win32-API CreateFile (...) in C++ fehlgeschlagen
char device_name[] = "\\\\.\\interception00";
printf("device_name: %s \n", device_name);
device_array[i].handle = CreateFile(device_name, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
DWORD error = GetLastError();
printf("GetLastError (Number): %d, ", error);
if (error == ERROR_FILE_NOT_FOUND)
{
printf("error == ERROR_FILE_NOT_FOUND \n");
}
else if (error == ERROR_SUCCESS)
{
printf("error == ERROR_SUCCESS \n");
}
else
{
printf("error == UNBEKANNT \n");
}
Der Ausgang des PC, die erfolgreich öffnet die Datei ist:
device_name: \\.\interception00
GetLastError (Number): 0, error == ERROR_SUCCESS
Der andere PC nicht in der Lage ist, die Datei zu öffnen. Die Ausgabe ist:
device_name: \\.\interception00
GetLastError (Number): 2, error == ERROR_FILE_NOT_FOUND
Hat jemand eine Ahnung, warum das passiert? Vielleicht ist es ein Problem unzureichender Rechte?
Wahrscheinlich führt der zweite Computer den Treiber nicht aus, der diese spezielle Gerätedatei erstellt. –
Ihre Fehlerprüfung ist etwas falsch. Rufen Sie "GetLastError" nur auf, wenn der API-Aufruf fehlschlägt. Sie überprüfen nicht auf Fehler. –