Winapi 无法使用ServiceManager停止/卸载非PnP驱动程序

Winapi 无法使用ServiceManager停止/卸载非PnP驱动程序,winapi,driver,kmdf,Winapi,Driver,Kmdf,我根据此处找到的Microsoft示例驱动程序制作了一个简单的非PnP驱动程序: 我想我做的每件事都是对的。MyDriverEntry()包含: WDF_DRIVER_CONFIG_INIT(&Config, WDF_NO_EVENT_CALLBACK); Config.DriverInitFlags |= WdfDriverInitNonPnpDriver; Config.EvtDriverUnload = DriverUnload; status = WdfDriverCrea

我根据此处找到的Microsoft示例驱动程序制作了一个简单的非PnP驱动程序:

我想我做的每件事都是对的。My
DriverEntry()
包含:

WDF_DRIVER_CONFIG_INIT(&Config, WDF_NO_EVENT_CALLBACK);

Config.DriverInitFlags |= WdfDriverInitNonPnpDriver;

Config.EvtDriverUnload = DriverUnload;

status = WdfDriverCreate(DriverObject, RegistryPath, &Attributes, &Config, &DriverHandle);
if (!NT_SUCCESS(status)) {
    return status;
}

pInit = WdfControlDeviceInitAllocate(DriverHandle, &SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RW_RES_R);

if (pInit == NULL) {
  status = STATUS_INSUFFICIENT_RESOURCES;
  return status;
}

return status;
我还在
DriverEntry()
中创建了该设备(因为它不是PnP),但即使不创建该设备,问题仍然存在

我使用ServiceManager安装/启动/停止/卸载驱动程序

安装和启动工作正常。但是当我尝试使用
服务控制停止
来停止驱动程序时,
控制服务
返回
错误\u无效的服务控制
。为了卸载驱动程序,我需要重新启动机器


是否有我遗漏的东西会阻止司机停车

如果我记得的话,inf中有一个部分使驱动程序不可加载correctly@MichaelChourdakis嗯。我没有使用INF。我在创建服务时直接指向.sys文件。@MichaelChourdakis-否,are驱动程序可以从INF文件中卸载,而不依赖于INF文件。inf仅在安装阶段使用,不再使用