Я решил написать прогу для загрузки драйвера =) Она дергает ZwLoadDriver
(или NtLoadDriver, что для ntdll без разницы) и, по идее, должна завершаться. Но не завершается. Процесс висит в памяти. Драйвер, как ни странно, грузится нормально. Причем процесс загрузчика не умирает даже после вызова ZwUnloadDriver другим процессом-выгрузчиком. Она так и должна работать или ее глючит? У меня уже 45 процессов-пустышек загрузчика висит
))
зы. Код:
(или NtLoadDriver, что для ntdll без разницы) и, по идее, должна завершаться. Но не завершается. Процесс висит в памяти. Драйвер, как ни странно, грузится нормально. Причем процесс загрузчика не умирает даже после вызова ZwUnloadDriver другим процессом-выгрузчиком. Она так и должна работать или ее глючит? У меня уже 45 процессов-пустышек загрузчика висит
зы. Код:
Код:
LPCWSTR Driver = L"\\registry\\machine\\system\\CurrentControlSet\\Services\\Driver";
LPCWSTR DrvFile = L"H:\\Progs\\driver\\Release\\Driver.sys";
HKEY Key, Key2;
LPTSTR Pth;
DWORD dType;
char Image[MAX_PATH];
UNICODE_STRING ImageFile;
lstrcpy(Image, "\\??\\");
GetFullPathName(DrvFile, MAX_PATH, (LPTSTR)((DWORD)Image + 4), &Pth);
dType = 1;
RegOpenKey(HKEY_LOCAL_MACHINE, "system\\CurrentControlSet\\Services", &Key);
RegCreateKey(Key, "Driver", &Key2);
RegSetValueEx(Key2, "ImagePath", 0, REG_SZ, (LPBYTE)&Image, lstrlen(Image));
RegSetValueEx(Key2, "Type", 0, REG_DWORD, (LPBYTE)&dType, sizeof(DWORD));
RegCloseKey(Key2);
RegCloseKey(Key);
RtlInitUnicodeString(&ImageFile, Driver);
ZwLoadDriver(&ImageFile);