Следующий код работает на одном ПК, но не на другом ПК. Оба ПК имеют Windows 7 в качестве своей ОС.
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");
}
Вывод ПК, который успешно открывает файл:
device_name: \\.\interception00
GetLastError (Number): 0, error == ERROR_SUCCESS
Другой ПК не может открыть файл. Результат:
device_name: \\.\interception00
GetLastError (Number): 2, error == ERROR_FILE_NOT_FOUND
Кто-нибудь знает, почему это происходит? Может проблема в недостаточных правах?
GetLastError
только в случае сбоя вызова API. Вы не проверяете на провал. - person David Heffernan   schedule 23.03.2016