[KMDF에만 적용]
WdfIoResourceListInsertDescriptor 메서드는 리소스 설명자를 리소스 요구 사항 목록의 논리 구성삽입합니다.
통사론
NTSTATUS WdfIoResourceListInsertDescriptor(
[in] WDFIORESLIST ResourceList,
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] ULONG Index
);
매개 변수
[in] ResourceList
디바이스에 대한 하드웨어 리소스의 논리적 구성을 나타내는 프레임워크 리소스 범위 목록 개체에 대한 핸들입니다.
[in] Descriptor
하드웨어 리소스를 설명하는 IO_RESOURCE_DESCRIPTOR 구조체에 대한 포인터입니다.
[in] Index
ResourceList가 지정하는 논리 구성에 이미 있는 리소스 설명자 집합의 인덱스로 사용되는 0부터 시작하는 값입니다. 논리 구성의 끝에 리소스 설명자를 추가하려면 WdfIoResourceListGetCountWDF_INSERT_AT_END 또는 반환 값을 지정합니다.
반환 값
WdfIoResourceListInsertDescriptor 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
|
잘못된 매개 변수를 지정했습니다. |
|
드라이버에서 논리적 구성에 설명자를 추가할 수 없습니다. |
|
프레임워크에서 설명자를 저장할 공간을 할당할 수 없습니다. |
|
Index 매개 변수가 지정하는 값이 너무 큽니다. |
드라이버가 잘못된 개체 핸들을 제공하는 경우 시스템 버그 검사가 발생합니다.
발언
WdfIoResourceListInsertDescriptor 메서드는 설명자 매개 변수가 ResourceList 매개 변수가 지정하는 논리 구성을 가리키는 리소스 설명자를 Index 값이 식별하는 리소스 설명자 앞에 삽입합니다.
논리 구성의 끝에 리소스 설명자를 추가하려면 인덱스 값에 WdfIoResourceListGetCount WDF_INSERT_AT_END 또는 반환 값을 지정합니다. 또는 WdfIoResourceListAppendDescriptor 메서드를 사용합니다.
프레임워크는 IO_RESOURCE_DESCRIPTOR 구조체의 내용을 내부 스토리지에 복사하므로 WdfIoResourceListInsertDescriptor 호출하는 드라이버 루틴은 구조를 로컬로 할당할 수 있습니다. 드라이버가 WdfIoResourceListInsertDescriptor 호출한 후 드라이버는 IO_RESOURCE_DESCRIPTOR 구조를 다시 사용할 수 있습니다.
리소스 요구 사항 목록 및 논리 구성에 대한 자세한 내용은 Framework-Based 드라이버 하드웨어 리소스를 참조하세요.
예제
다음 코드 예제에서는 리소스 설명자를 초기화하고 논리 구성의 끝에 설명자를 추가합니다.
IO_RESOURCE_DESCRIPTOR descriptor;
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 = WdfIoResourceListInsertDescriptor(
logConfig,
&descriptor,
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) |