RtlStringCbPrintfA(buffer, sizeof(buffer), "\\DosDevices\\C:\\log\\log%d.txt", log_number);
log_number++;
MultiByteToWideChar(CP_ACP, 0, file_name_buffer, strlen(buffer), buffer, strlen(buffer));
Писать из драйвера в log-файл
Как писать из драйвера в файл? Пишу на Си под DDK Win2003.
Если использовать напривер fopen/fwrite/fclose, то компиятор выдаёт ошибки:
unresolved external symbol __imp__fopen
unresolved external symbol __imp__fwrite
unresolved external symbol __imp__fclose
В драйвере надо использовать Native API функции, а именно Nt(Zw)CreateFile, Nt(Zw)WriteFile, Nt(Zw)ReadFile, Nt(Zw)Close.
Код:
В этом случае нужно проинклюдить windows.h, но при этом компилятор выдаёт кучу ошибок.
MultiByteToWideChar находится в kernel32.dll. Нельзя из драйвера просто так взять и выполнить код в user-mode! И включать windows.h тоже нельзя. Следует использовать функцию RtlAnsiStringToUnicodeString.