WdfIoResourceListAppendDescriptor 函式 (wdfresource.h)

[僅適用於 KMDF]

WdfIoResourceListAppendDescriptor 方法會將資源描述元新增至資源需求列表邏輯組態的結尾。

語法

NTSTATUS WdfIoResourceListAppendDescriptor(
  [in] WDFIORESLIST            ResourceList,
  [in] PIO_RESOURCE_DESCRIPTOR Descriptor
);

參數

[in] ResourceList

架構 resource-range-list 物件的句柄,代表裝置硬體資源的邏輯設定。

[in] Descriptor

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

傳回值

如果作業成功,WdfIoResourceListAppendDescriptor 會傳回STATUS_SUCCESS。 否則,這個方法可能會傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_PARAMETER
指定了無效的參數。
STATUS_ACCESS_DENIED
驅動程式不允許將描述項新增至 ResourceList 參數指定的邏輯組態。
STATUS_INSUFFICIENT_RESOURCES
架構無法配置空間來儲存描述項。
 

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

備註

架構會將描述參數指向之IO_RESOURCE_DESCRIPTOR結構的內容複製到內部記憶體,因此呼叫 WdfIoResourceListAppendDescriptor 的驅動程式例程可以在本機配置結構。 驅動程式呼叫 WdfIoResourceListAppendDescriptor 之後,驅動程式可以重複使用 IO_RESOURCE_DESCRIPTOR 結構。

如需資源需求清單和邏輯組態的詳細資訊,請參閱 Framework-Based 驅動程式的硬體資源

範例

下列程式代碼範例會建立空的邏輯組態,並將其新增至資源需求清單。 然後,此範例會初始化資源描述元,並將描述元新增至邏輯組態。

IO_RESOURCE_DESCRIPTOR  descriptor;
NTSTATUS  status;
WDFIORESLIST  logConfig;

status = WdfIoResourceListCreate(
                                 RequirementsList,
                                 WDF_NO_OBJECT_ATTRIBUTES,
                                 &logConfig
                                 );
if (!NT_SUCCESS(status)) {
    return status;
}

status = WdfIoResourceRequirementsListAppendIoResList(
                                                      RequirementsList,
                                                      logConfig
                                                      );
if (!NT_SUCCESS(status)) {
    return status;
}

RtlZeroMemory(
              &descriptor,
              sizeof(descriptor)
              );

descriptor.Option = 0;
descriptor.Type = CmResourceTypePort;
descriptor.ShareDisposition = CmResourceShareDeviceExclusive;
descriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
descriptor.u.Port.Length = 1;
descriptor.u.Port.Alignment = 0x01;
descriptor.u.Port.MinimumAddress.QuadPart = 0;
descriptor.u.Port.MaximumAddress.QuadPart = 0xFFFF;

status = WdfIoResourceListAppendDescriptor(
                                           logConfig,
                                           &descriptor
                                           );

規格需求

需求
目標平台 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)

另請參閱

IO_RESOURCE_DESCRIPTOR

WdfIoResourceListCreate

WdfIoResourceListInsertDescriptor