다음을 통해 공유


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