EXTERN_C INIT NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING registryPath) { auto registration = TraceLoggingRegistration(KtlTestTracing); LogEntry(); WDF_OBJECT_ATTRIBUTES driverAttributes; WDF_OBJECT_ATTRIBUTES_INIT(&driverAttributes); WDX_OBJECT_ATTRIBUTES_SET_CONTEXT_TYPE(&driverAttributes, DriverContext); WDF_DRIVER_CONFIG driverConfig; WDF_DRIVER_CONFIG_INIT(&driverConfig, nullptr); driverConfig.DriverInitFlags = WdfDriverInitNonPnpDriver; driverConfig.EvtDriverUnload = [](WDFDRIVER) PAGED { // do nothing, just to allow driver to be stopped // all cleanup is done via DriverContext's destructor }; WDFDRIVER wdfDriver; RETURN_IF_NOT_NT_SUCCESS(WdfDriverCreate(driver, registryPath, &driverAttributes, &driverConfig, &wdfDriver)); WDX_INIT_CONTEXT(wdfDriver, DriverContext, std::move(registration)); RETURN_IF_NOT_NT_SUCCESS(CreateTestDevice(wdfDriver)); SuccessExit(); }
ComPtr<CanvasImageBrush> CreateMinimalTestBrush() { auto canvasDevice = CreateTestDevice(); auto adapter = std::make_shared<TestCanvasImageBrushAdapter>(); return Make<CanvasImageBrush>(canvasDevice.Get(), nullptr, adapter); }