我是一名Web开发人员,决定进入内核模式开发。我安装了WDK 8.1,Visual Studio Professional 2013,并设置了Windows 7 VM来调试和测试我的驱动程序。
开始我下载解决方案并构建驱动程序。我无法执行教程中描述的部署步骤,因此我尝试使用OSR Driver Loader
安装驱动程序我能够注册驱动程序,但是当我尝试启动它时,我收到以下错误。
C:\ Windows \ system32> sc start KmfSmall
[SC] StartService FAILED 6:
句柄无效。
这是驱动程序的代码:
#include <ntddk.h>
#include <wdf.h>
DRIVER_INITIALIZE DriverEntry;
EVT_WDF_DRIVER_DEVICE_ADD KmdfSmallEvtDeviceAdd;
NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
{
NTSTATUS status;
WDF_DRIVER_CONFIG config;
KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfSmall: DriverEntry\n"));
WDF_DRIVER_CONFIG_INIT(&config, KmdfSmallEvtDeviceAdd);
status = WdfDriverCreate(DriverObject, RegistryPath, WDF_NO_OBJECT_ATTRIBUTES, &config, WDF_NO_HANDLE);
return status;
}
NTSTATUS KmdfSmallEvtDeviceAdd(_In_ WDFDRIVER Driver, _Inout_ PWDFDEVICE_INIT DeviceInit)
{
NTSTATUS status;
WDFDEVICE hDevice;
UNREFERENCED_PARAMETER(Driver);
KdPrintEx((DPFLTR_IHVDRIVER_ID, DPFLTR_INFO_LEVEL, "KmdfSmall: KmdfSmallEvtDeviceAdd\n"));
status = WdfDeviceCreate(&DeviceInit, WDF_NO_OBJECT_ATTRIBUTES, &hDevice);
return status;
}
答案 0 :(得分:2)
我花了一个星期左右的时间试图解决这个问题,我刚刚回答了看似同样的问题
基本上归结为缺少KMDF版本的项目设置
问题:Why am I getting Error Code 6 on StartService?
答案:https://stackoverflow.com/a/23705329/2487257