none
Разработка драйвера. C++ и BSOD RRS feed

  • Общие обсуждения

  • Нужна помощь. Как настроить проект и запустить драйвер на WDK 8.1 и VS 2013, делал всё по туториалу на сайте майкрософт, использую для запуска драйвера KmdManager (думаю многие его знают).
    Но сколько бы не пытался как-то запустить драйвер и вывести Hello World в Win Dbg x64 выбивало систему в бсод.
    Драйвер компилирую естественно x64.
    Windows 7 License x64

    #include <ntddk.h>
    #include <wdf.h>
    
    DRIVER_INITIALIZE DriverEntry;
    EVT_WDF_DRIVER_DEVICE_ADD KmdfHelloWorldEvtDeviceAdd;
    
    #pragma alloc_text (INIT, DriverEntry)
    #pragma alloc_text (PAGE, KmdfHelloWorldEvtDeviceAdd)
    
    NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT  DriverObject, _In_ PUNICODE_STRING RegistryPath)
    {
    	NTSTATUS status;
    	WDF_DRIVER_CONFIG config;
    	KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: DriverEntry\n"));
    	WDF_DRIVER_CONFIG_INIT(&config, KmdfHelloWorldEvtDeviceAdd);
    	status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE);
    	return status;
    }
    
    NTSTATUS KmdfHelloWorldEvtDeviceAdd(_In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit)
    {
    	NTSTATUS status;
    	WDFDEVICE hDevice;
    	UNREFERENCED_PARAMETER(Driver);
    	KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfHelloWorld: KmdfHelloWorldEvtDeviceAdd\n"));
    	status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice);
    	return status;
    }


    15 марта 2018 г. 9:59