RtlIoEncodeMemIoResource 함수(wdm.h)
RtlIoEncodeMemIoResource 루틴은 메모리 또는 I/O 포트 주소의 범위를 설명하기 위해 IO_RESOURCE_DESCRIPTOR 구조를 업데이트합니다.
구문
NTSYSAPI NTSTATUS RtlIoEncodeMemIoResource(
[in] PIO_RESOURCE_DESCRIPTOR Descriptor,
[in] UCHAR Type,
[in] ULONGLONG Length,
[in] ULONGLONG Alignment,
[in] ULONGLONG MinimumAddress,
[in] ULONGLONG MaximumAddress
);
매개 변수
[in] Descriptor
업데이트할 IO_RESOURCE_DESCRIPTOR 구조체에 대한 포인터입니다.
[in] Type
주소 범위의 리소스 종류입니다. 이 매개 변수는 CmResourceTypeMemory, CmResourceTypeMemoryLarge 또는 CmResourceTypePort일 수 있습니다.
[in] Length
할당 가능한 주소 범위의 길이(바이트)입니다.
[in] Alignment
주소 범위의 시작 주소 맞춤(바이트)입니다.
[in] MinimumAddress
디바이스에 할당할 수 있는 최소 주소입니다.
[in] MaximumAddress
디바이스에 할당할 수 있는 최대 주소입니다.
반환 값
RtlIoEncodeMemIoResource 는 NTSTATUS 값을 반환합니다. 이 루틴은 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
IO_RESOURCE_DESCRIPTOR 구조가 업데이트되었습니다. |
|
Length 또는 Alignment에 지정된 값을 IO_RESOURCE_DESCRIPTOR 구조체에서 인코딩할 수 없습니다. |
|
지정된 매개 변수 중 하나 이상이 잘못되었습니다. |
설명
길이가 32비트보다 큰 주소는 특정 맞춤 제한을 충족해야 합니다. 그렇지 않으면 루틴이 STATUS_UNSUCCESSFUL 반환합니다.
주소 길이 | 맞춤 제한 |
---|---|
40비트 | 가장 낮은 8비트 는 0이어야 합니다. |
48비트 | 가장 낮은 16비트 는 0이어야 합니다. |
64비트 | 가장 낮은 32비트 는 0이어야 합니다. |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 모든 수준 |