rtlIoEncodeMemIoResource 函数 (wdm.h)
RtlIoEncodeMemIoResource 例程更新IO_RESOURCE_DESCRIPTOR结构,以描述内存或 I/O 端口地址的范围。
语法
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结构。 |
|
长度或对齐的指定值无法在IO_RESOURCE_DESCRIPTOR结构中编码。 |
|
一个或多个指定的参数无效。 |
注解
长度大于 32 位的地址必须满足某些对齐限制,否则例程将返回STATUS_UNSUCCESSFUL。
地址长度 | 对齐限制 |
---|---|
40 位 | 最低 8 位必须为零。 |
48 位 | 最低 16 位必须为零。 |
64 位 | 最低 32 位必须为零。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Vista 和更高版本的 Windows 中可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | 任何级别 |