WdfFdoQueryForInterface函数返回错误

adaofuxie 2020-07-21 04:52:26
在编译Intel的DPDK驱动时,发现驱动编译完后安装不上,调试发现WdfFdoQueryForInterface函数返回错误,返回的status值为c00000bb。部分代码如下:
get_pci_device_info(_In_ WDFOBJECT device)
{
NTSTATUS status = STATUS_UNSUCCESSFUL;

PNETUIO_CONTEXT_DATA netuio_contextdata;
netuio_contextdata = netuio_get_context_data(device);

if (!netuio_contextdata)
return status;

netuio_contextdata->wdf_device = device; // Store for later use

// Obtain the BUS_INTERFACE_STANDARD interface from the Bus Driver
DbgPrintEx(DPFLTR_IHVNETWORK_ID, DPFLTR_NETUIO_INFO_LEVEL, "get_pci_device_info 111\n");
status = WdfFdoQueryForInterface(device, &GUID_BUS_INTERFACE_STANDARD,
(PINTERFACE)&netuio_contextdata->bus_interface,
sizeof(BUS_INTERFACE_STANDARD), 1, NULL);
if (!NT_SUCCESS(status))
{
DbgPrintEx(DPFLTR_IHVNETWORK_ID, DPFLTR_NETUIO_INFO_LEVEL, "get_pci_device_info status %08x\n",status);
return status;
}

// Retrieve the B:D:F details of our device
PDEVICE_OBJECT pdo = NULL;
pdo = WdfDeviceWdmGetPhysicalDevice(device);
if (pdo) {
ULONG prop = 0, length = 0;
status = IoGetDeviceProperty(pdo, DevicePropertyBusNumber, sizeof(ULONG), (PVOID)&netuio_contextdata->addr.bus_num, &length);
status = IoGetDeviceProperty(pdo, DevicePropertyAddress, sizeof(ULONG), (PVOID)&prop, &length);

if (NT_SUCCESS(status)) {
netuio_contextdata->addr.func_num = prop & 0x0000FFFF;
netuio_contextdata->addr.dev_num = ((prop >> 16) & 0x0000FFFF);
}
// Also, retrieve the NUMA node of the device
USHORT numaNode;
status = IoGetDeviceNumaNode(pdo, &numaNode);
if (NT_SUCCESS(status)) {
netuio_contextdata->dev_numa_node = numaNode;
}
}

return status;
}
请问WdfFdoQueryForInterface函数怎么用,错误怎么解决?谢谢了
...全文
260 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
文末附数据集可视化效果图。 【数据集概况】 · 检测类别(中文):[矿石0(0), 矿石1(1), 矿石10(10), 矿石11(11), 矿石2(2), 矿石3(3), 矿石4(4), 矿石7(7), 矿石8(8), 矿石9(9), 模组矿石(modore), 普通矿石(ore)] · 训练集:1383 张 · 验证集:130 张 · 测试集:66 张 · 总计:1579 张 该数据集聚焦于典型游戏内资源采集场景,以俯视角呈现冰雪覆盖的虚拟地形环境,包含多种类型矿石与特殊资源点。数据集中各类矿石分布密集且形态多样,标注清晰,能够有效支持对复杂背景下的小目标识别与分类任务,具备较高的训练价值和实际应用潜力。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 100 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9185** mAP50-95 | 0.5810 Precision | 0.9468 Recall | 0.8648 train/box_loss | 1.2381 train/cls_loss | 0.4081 val/box_loss | 1.5489 val/cls_loss | 0.5361 【训练过程分析】 100 轮训练后 mAP50 达到 0.9185,模型收敛良好。Loss 曲线前段快速下降,后段趋于平稳,val_loss 无反弹,没有明显过拟合。但 mAP50-95 为 0.5810,和 mAP50 差距 0.34,定位精度仍有优化空间。 【模型性能评估】 Precision 0.9468、Recall 0.8648...

21,620

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧