WdfCmResourceListRemoveByDescriptor 函式 (wdfresource.h)

[僅適用於 KMDF]

WdfCmResourceListRemoveByDescriptor 方法會從指定的資源清單中移除指定的資源描述元。

語法

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

參數

[in] List

架構資源清單物件的句柄,代表裝置的硬體資源清單清單。

[in] Descriptor

描述硬體資源的 CM_PARTIAL_RESOURCE_DESCRIPTOR 結構的指標。

傳回值

備註

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

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;
        }
    }
}

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdfresource.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

CM_PARTIAL_RESOURCE_DESCRIPTOR

WdfCmResourceListRemove