WdfCmResourceListRemoveByDescriptor 函数 (wdfresource.h)

[仅适用于 KMDF]

WdfCmResourceListRemoveByDescriptor 方法从指定的资源列表中删除指定的资源描述符。

语法

void WdfCmResourceListRemoveByDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
);

参数

[in] List

框架资源列表对象的句柄,表示设备的硬件资源列表列表。

[in] Descriptor

指向描述硬件资源的 CM_PARTIAL_RESOURCE_DESCRIPTOR 结构的指针。

返回值

没有

言论

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

WdfCmResourceListRemoveByDescriptor 方法删除与 描述符 参数匹配的资源描述符。 若要查找匹配项,该方法将指定的资源描述符与逻辑配置中的资源描述符(字节的字节)进行比较。

WdfCmResourceListRemoveByDescriptor 删除索引值 n的资源描述符时,下一个资源描述符的索引值从 n+1 更改为 n

有关资源列表的详细信息,请参阅 Framework-Based 驱动程序的硬件资源

例子

下面的代码示例在设备的资源列表中搜索端口资源描述符。 对于示例找到的每个端口资源,它会检查端口地址是否位于特定范围内。 如果端口地址不在范围之外,则本示例将从 原始资源列表和已转换的资源列表中删除描述符

NTSTATUS
MyEvtDeviceRemoveAddedResources(
    WDFDEVICE Device,
    WDFCMRESLIST ResourcesRaw,
    WDFCMRESLIST ResourcesTranslated
    )
{    
    ULONG i, count;

    pDevExt = DeviceGetExtension(Device);
    count = WdfCmResourceListGetCount(ResourcesRaw);

    for (i = 0; i < count; i++) {
        PCM_PARTIAL_RESOURCE_DESCRIPTOR descriptor;

        descriptor = WdfCmResourceListGetDescriptor(
                                                    ResourcesRaw,
                                                    i
                                                    );

        if (descriptor->Type != CmResourceTypePort) {
            continue;
        }

        if (descriptor->u.Port.Start.QuadPart < pDevExt->Ranges[0].MinAddress ||
             descriptor->u.Port.Start.QuadPart > pDevExt->Ranges[0].MaxAddress)
        {
            WdfCmResourceListRemoveByDescriptor(
                                                ResourcesRaw,
                                                descriptor
                                                );

            // The descriptor may not be the same in the raw and translated resource lists, so use an index for the second removal

            WdfCmResourceListRemove(
                                                ResourcesTranslated,
                                                i
                                                );
            break;
        }
    }
}

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
标头 wdfresource.h (包括 Wdf.h)
Wdf01000.sys(请参阅框架库版本控制。
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf)

另请参阅

CM_PARTIAL_RESOURCE_DESCRIPTOR

WdfCmResourceListRemove