다음을 통해 공유


WdfIoResourceRequirementsListInsertIoResList 함수(wdfresource.h)

[KMDF에만 적용]

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

통사론

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

매개 변수

[in] RequirementsList

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

[in] IoResList

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

[in] Index

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

반환 값

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

반환 코드 묘사
STATUS_INVALID_PARAMETER
지정된 잘못된 매개 변수입니다.
STATUS_INVALID_DEVICE_REQUEST
지정된 resource-requirements-list 개체는 지정된 resource-range-list 개체를 소유하지 않습니다.
STATUS_INSUFFICIENT_RESOURCES
프레임워크에서 리소스 범위 목록 개체를 저장할 공간을 할당할 수 없습니다.
STATUS_ARRAY_BOUNDS_EXCEEDED
Index 매개 변수에 대해 지정된 값이 너무 컸습니다.
 

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

발언

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

리소스 요구 사항 목록의 끝에 논리 구성을 추가하려면 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