コード例 #1
0
ファイル: Driver.cpp プロジェクト: AndrewGaspar/ktl
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();
}
コード例 #2
0
 ComPtr<CanvasImageBrush> CreateMinimalTestBrush()
 {
     auto canvasDevice = CreateTestDevice();
     auto adapter = std::make_shared<TestCanvasImageBrushAdapter>();
     return Make<CanvasImageBrush>(canvasDevice.Get(), nullptr, adapter);
 }