次の方法で共有


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

アドレス範囲のリソースの種類。 このパラメーターには、 CmResourceTypeMemoryCmResourceTypeMemoryLarge、または 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
指定されたパラメーターの 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 任意のレベル

こちらもご覧ください

IO_RESOURCE_DESCRIPTOR

RtlIoDecodeMemIoResource