| 1234 | namespace LoadableModules |
| 1235 | { |
| 1236 | BOOL WINAPI KbCreateDriver(LPCWSTR DriverName, WdkTypes::PVOID DriverEntry) |
| 1237 | { |
| 1238 | KB_CREATE_DRIVER_IN Input = {}; |
| 1239 | SIZE_T NameLength = 0; |
| 1240 | __try { |
| 1241 | NameLength = wcslen(DriverName); |
| 1242 | } __except (EXCEPTION_EXECUTE_HANDLER) { |
| 1243 | return FALSE; |
| 1244 | } |
| 1245 | if (NameLength > 64) { |
| 1246 | SetLastError(ERROR_INVALID_NAME); |
| 1247 | return FALSE; // Very long name, seems like invalid data buffer |
| 1248 | } |
| 1249 | Input.DriverEntry = DriverEntry; |
| 1250 | Input.DriverName = reinterpret_cast<WdkTypes::PVOID>(DriverName); |
| 1251 | Input.DriverNameSizeInBytes = static_cast<ULONG>(NameLength) * sizeof(WCHAR); // We're sure that Length <= 64 |
| 1252 | return KbSendRequest(Ctls::KbCreateDriver, &Input, sizeof(Input)); |
| 1253 | } |
| 1254 | |
| 1255 | BOOL WINAPI KbLoadModule( |
| 1256 | WdkTypes::HMODULE hModule, |
no test coverage detected