次の方法で共有


RtlCmEncodeMemIoResource 関数 (wdm.h)

RtlCmEncodeMemIoResource ルーチンは、メモリまたは I/O ポート アドレスの範囲を記述するために、CM_PARTIAL_RESOURCE_DESCRIPTOR構造体を更新します。

構文

NTSYSAPI NTSTATUS RtlCmEncodeMemIoResource(
  [in] PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
  [in] UCHAR                           Type,
  [in] ULONGLONG                       Length,
  [in] ULONGLONG                       Start
);

パラメーター

[in] Descriptor

更新する CM_PARTIAL_RESOURCE_DESCRIPTOR 構造体へのポインター。

[in] Type

メモリのリソースの種類。 このパラメーターには、 CmResourceTypeMemoryCmResourceTypeMemoryLarge、または CmResourceTypePort を指定できます。

[in] Length

割り当てられたアドレスの範囲の長さ (バイト単位)。

[in] Start

メモリまたは I/O ポート アドレスの範囲の開始アドレス。

戻り値

RtlCmEncodeMemIoResource は NTSTATUS 値を返します。 このルーチンは、次のいずれかの値を返す場合があります。

リターン コード 説明
STATUS_SUCCESS
CM_PARTIAL_RESOURCE_DESCRIPTOR構造体が更新されました。
STATUS_UNSUCCESSFUL
Length に指定された値は、CM_PARTIAL_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 任意のレベル

こちらもご覧ください

CM_PARTIAL_RESOURCE_DESCRIPTOR

RtlCmDecodeMemIoResource