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構造体でエンコードできませんでした。 |
|
指定されたパラメーターの 1 つ以上が無効でした。 |
注釈
長さが 32 ビットを超えるアドレスは、特定のアラインメント制限を満たす必要があります。それ以外の場合、ルーチンはSTATUS_UNSUCCESSFULを返します。
アドレスの長さ | 配置の制限 |
---|---|
40 ビット | 最低 8 ビットは 0 である必要があります。 |
48 ビット | 最低 16 ビットは 0 である必要があります。 |
64 ビット | 最低 32 ビットは 0 である必要があります。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |