RtlCmEncodeMemIoResource function (wdm.h)
The RtlCmEncodeMemIoResource routine updates a CM_PARTIAL_RESOURCE_DESCRIPTOR structure to describe a range of memory or I/O port addresses.
Syntax
NTSYSAPI NTSTATUS RtlCmEncodeMemIoResource(
[in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
[in] UCHAR Type,
[in] ULONGLONG Length,
[in] ULONGLONG Start
);
Parameters
[in] Descriptor
A pointer to the CM_PARTIAL_RESOURCE_DESCRIPTOR structure to update.
[in] Type
The resource type of the memory. This parameter can be CmResourceTypeMemory, CmResourceTypeMemoryLarge, or CmResourceTypePort.
[in] Length
The length, in bytes, of the range of allocated addresses.
[in] Start
The starting address of the range of memory or I/O port addresses.
Return value
RtlCmEncodeMemIoResource returns an NTSTATUS value. This routine might return one of the following values:
Return code | Description |
---|---|
|
The CM_PARTIAL_RESOURCE_DESCRIPTOR structure has been updated. |
|
The specified value for Length cannot be encoded in a CM_PARTIAL_RESOURCE_DESCRIPTOR structure. |
|
One or more of the specified parameters are invalid. |
Remarks
Addresses that are larger than 32 bits in length must satisfy certain alignment restrictions or else the routine returns STATUS_UNSUCCESSFUL.
Address length | Alignment restriction |
---|---|
40 bits | Lowest 8 bits must be zero. |
48 bits | Lowest 16 bits must be zero. |
64 bits | Lowest 32 bits must be zero. |
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available in Windows Vista and later versions of Windows. |
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Any level |