Функция WdfCmResourceListAppendDescriptor (wdfresource.h)

[Применяется только к KMDF]

Метод WdfCmResourceListAppendDescriptor добавляет дескриптор ресурса в конец указанного списка ресурсов.

Синтаксис

NTSTATUS WdfCmResourceListAppendDescriptor(
  [in] WDFCMRESLIST                    List,
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor
);

Параметры

[in] List

Дескриптор объекта списка ресурсов платформы, который представляет список аппаратных ресурсов для устройства.

[in] Descriptor

Указатель на структуру CM_PARTIAL_RESOURCE_DESCRIPTOR , описывающую аппаратный ресурс.

Возвращаемое значение

WdfCmResourceListAppendDescriptor возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:

Код возврата Описание
STATUS_INVALID_PARAMETER
Указан недопустимый параметр.
STATUS_ACCESS_DENIED
Драйверу не разрешено добавлять дескрипторы в логическую конфигурацию, указанную параметром List . Например, драйверу не удалось изменить логическую конфигурацию, полученную функцией обратного вызова EvtDevicePrepareHardware или EvtDeviceReleaseHardware .
STATUS_INSUFFICIENT_RESOURCES
Платформе не удалось выделить место для хранения дескриптора, указанного параметром Дескриптора .
 

Системная ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.

Комментарии

Платформа копирует содержимое структуры CM_PARTIAL_RESOURCE_DESCRIPTOR во внутреннее хранилище, поэтому подпрограмма драйвера, которая вызывает WdfCmResourceListAppendDescriptor , может выделить структуру локально. После вызова драйвером WdfCmResourceListAppendDescriptor он может повторно использовать структуру CM_PARTIAL_RESOURCE_DESCRIPTOR .

Дополнительные сведения о списках ресурсов см. в разделе Аппаратные ресурсы для драйверов Framework-Based.

Примеры

В следующем примере кода в конец списка ресурсов, который получает функция обратного вызова EvtDeviceResourcesQuery , добавляется дескриптор ресурса.

NTSTATUS
PdoEvtDeviceResourcesQuery(
    IN WDFDEVICE  Device,
    IN WDFCMRESLIST  Resources
    )
{
    CM_PARTIAL_RESOURCE_DESCRIPTOR newDescriptor;
...
    newDescriptor.Type = CmResourceTypePort;
    newDescriptor.ShareDisposition = CmResourceShareDeviceExclusive;
    newDescriptor.Flags = CM_RESOURCE_PORT_IO|CM_RESOURCE_PORT_16_BIT_DECODE;
    newDescriptor.u.Port.Length = 1;
    newDescriptor.u.Port.Start = 0;

    status = WdfCmResourceListAppendDescriptor(
                                               Resources,
                                               &newDescriptor
                                               );
...

}

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия 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

EvtDevicePrepareHardware

EvtDeviceReleaseHardware

EvtDeviceResourcesQuery

WdfCmResourceListInsertDescriptor