【问题标题】:kdmf pnp driver cannot find device when installingkdmf pnp驱动安装时找不到设备
【发布时间】:2016-04-14 10:13:40
【问题描述】:

我正在尝试创建一个 pnp 驱动程序,但是当我运行 sc start driver-name 时,我得到一个系统错误 1058(禁用禁用或没有关联的启用设备)。但是,如果我修改 nonpnp WDF_DRIVER_CONFIG_INIT(&config, WDF_NO_EVENT_CALLBACK);config.DriverInitFlags |= WdfDriverInitNonPnpDriver; 的代码,服务就会启动并且我可以进行调试。

我已经为通过设备管理器验证的设备尝试了不同的 hwid 值。 DriverEntry 运行良好,我使用过 windbg,但从未调用过设备添加函数。

pnp 的驱动程序输入代码。

// prototype for add device function
EVT_WDF_DRIVER_DEVICE_ADD QDeviceAdd;

NTSTATUS DriverEntry(
    IN OUT PDRIVER_OBJECT   DriverObject,
    IN PUNICODE_STRING      RegistryPath
    )
{
    NTSTATUS                       status = STATUS_SUCCESS;
    WDF_DRIVER_CONFIG              config;
    WDFDRIVER                      hDriver;
    PWDFDEVICE_INIT                pInit = NULL;
    WDF_OBJECT_ATTRIBUTES          attributes;

    KdPrint(("enabling wpp tracing\n"));
    WPP_INIT_TRACING(DriverObject, RegistryPath);

    WDF_DRIVER_CONFIG_INIT(
        &config,
        QDeviceAdd // WDF_NO_EVENT_CALLBACK This is a non-pnp driver.
        );

    WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
    attributes.EvtCleanupCallback = QEvtDriverContextCleanup;

    status = WdfDriverCreate(DriverObject,
        RegistryPath,
        &attributes,
        &config,
        &hDriver);

    if (!NT_SUCCESS(status)) {
        KdPrint(("NonPnp: WdfDriverCreate failed with status 0x%x\n", status));
        WPP_CLEANUP(DriverObject);
        return status;
    }

    return status;
}

【问题讨论】:

    标签: inf kmdf


    【解决方案1】:

    显然,以前的 inf 文件副本保留在商店中,并且注册表没有更新,因此经过一番挖掘后,我结束了以下操作:

    检查 C:\Windows\Inf\setupapi.dev.log 并复制丢失的文件。 然后使用 pnputil 从存储中删除驱动程序

    • pnputil -d oemXX.inf
    • 手动移除密钥 HKLM\SYSTEM\CurrentControlSet\Control\Class{your-class-id}
    • pnputil -i /path/to/inf

    感谢this sitethis post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多