MCPcopy Create free account
hub / github.com/HoShiMin/Kernel-Bridge / KbCreateDriver

Function KbCreateDriver

User-Bridge/API/User-Bridge.cpp:1236–1253  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1234namespace 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,

Callers 1

KbRtlMapDriverMemoryFunction · 0.70

Calls 1

KbSendRequestFunction · 0.85

Tested by

no test coverage detected