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 |
---|---|
|
指定了無效的參數。 |
|
驅動程式不允許將描述項新增至 ResourceList 參數指定的邏輯組態。 |
|
架構無法配置空間來儲存描述項。 |
如果驅動程式提供無效的物件句柄,就會發生系統錯誤檢查。
備註
架構會將描述元參數指向之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) |