WdfIoResourceRequirementsListInsertIoResList 함수(wdfresource.h)

[KMDF에만 적용]

WdfIoResourceRequirementsListInsertIoResList 메서드는 리소스 요구 사항 목록에 논리 구성을 삽입합니다.

구문

NTSTATUS WdfIoResourceRequirementsListInsertIoResList(
  [in] WDFIORESREQLIST RequirementsList,
  [in] WDFIORESLIST    IoResList,
  [in] ULONG           Index
);

매개 변수

[in] RequirementsList

디바이스의 리소스 요구 사항 목록을 나타내는 프레임워크 resource-requirements-list 개체에 대한 핸들입니다.

[in] IoResList

디바이스에 대한 하드웨어 리소스의 논리적 구성을 나타내는 프레임워크 resource-range-list 개체에 대한 핸들입니다.

[in] Index

RequirementsList에서 지정하는 리소스 요구 사항 목록에 이미 있는 논리 구성 집합의 인덱스로 사용되는 0부터 시작하는 값입니다. 목록의 끝에 구성을 추가하려면 WdfIoResourceRequirementsListGetCount에서 WDF_INSERT_AT_END 또는 반환 값을 지정합니다.

반환 값

WdfIoResourceRequirementsListInsertIoResList 는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
지정된 대로 잘못된 매개 변수입니다.
STATUS_INVALID_DEVICE_REQUEST
지정된 resource-requirements-list 개체는 지정된 resource-range-list 개체를 소유하지 않습니다.
STATUS_INSUFFICIENT_RESOURCES
프레임워크에서 resource-range-list 개체를 저장할 공간을 할당할 수 없습니다.
STATUS_ARRAY_BOUNDS_EXCEEDED
Index 매개 변수에 지정된 값이 너무 큽니다.
 

드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사 발생합니다.

설명

WdfIoResourceRequirementsListInsertIoResList 메서드는 Index 값이 식별하는 논리적 구성 앞에 RequirementsList 매개 변수가 지정하는 리소스 요구 사항 목록에 IoResList 매개 변수가 지정하는 논리 구성을 삽입합니다.

리소스 요구 사항 목록의 끝에 논리 구성을 추가하려면 WDF_INSERT_AT_END 또는 WdfIoResourceRequirementsListGetCount 의 반환 값을 인덱스 값으로 사용합니다. 또는 WdfIoResourceRequirementsListAppendIoResList 메서드를 사용합니다.

리소스 요구 사항 목록에 대한 자세한 내용은 Framework-Based 드라이버용 하드웨어 리소스를 참조하세요.

예제

다음 코드 예제에서는 EvtDeviceResourceRequirementsQuery 콜백 함수가 두 개의 빈 논리 구성을 만들고 리소스 요구 사항 목록에 추가하는 방법을 보여 줍니다.

NTSTATUS
Example_EvtDeviceResourceRequirementsQuery(
    IN WDFDEVICE Device,
    IN WDFIORESREQLIST RequirementsList
    )
{
    NTSTATUS  status;
    WDFIORESLIST  logConfig1;
    WDFIORESLIST  logConfig2;

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

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

    status = WdfIoResourceListCreate(
                                     RequirementsList,
                                     WDF_NO_OBJECT_ATTRIBUTES,
                                     &logConfig2
                                     );
    if (!NT_SUCCESS(status)) {
        return status;
    }
    status = WdfIoResourceRequirementsListInsertIoResList(
                                             RequirementsList,
                                             logConfig2,
                                             WDF_INSERT_AT_END
                                             );
    if (!NT_SUCCESS(status)) {
        return status;
    }
...
}

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
머리글 wdfresource.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

WdfIoResourceListCreate

WdfIoResourceRequirementsListAppendIoResList