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 값을 반환합니다. 이 루틴은 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_SUCCESS
IO_RESOURCE_DESCRIPTOR 구조가 업데이트되었습니다.
STATUS_UNSUCCESSFUL
Length 또는 Alignment에 지정된 값을 IO_RESOURCE_DESCRIPTOR 구조체에서 인코딩할 수 없습니다.
STATUS_INVALID_PARAMETER
지정된 매개 변수 중 하나 이상이 잘못되었습니다.

설명

길이가 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 모든 수준

추가 정보

IO_RESOURCE_DESCRIPTOR

RtlIoDecodeMemIoResource