次の方法で共有


ExtRemoteList クラス (engextcpp.hpp)

ExtRemoteList クラスは、1 つのリンクリストまたは二重にリンクされたリストのラッパーを提供します。 クラスには、リスト内を前後に移動するために使用できるメソッドが含まれています。

ExtRemoteList では 、NULL で終わるリストと循環リストの両方がサポートされます。

ExtRemoteList は、NT ベースのバージョンの Windows がリストを実装する方法で、リストが実装されていることを想定しています。 また、リストで SINGLE_LIST_ENTRY または LIST_ENTRY 構造体が使用されていることも想定しています。 特に、 ExtRemoteList はリストに次の特性があることを想定しています。

  1. リストには頭が付 きます。 ヘッドは、リストの先頭 (および、循環リストと二重リンク リストの場合は末尾) を表し、リスト アイテムではありません。 ヘッドの種類は、SINGLE_LIST_ENTRYまたはLIST_ENTRYです。
  2. リスト内の次の項目へのポインターは、次の項目へのポインターを指します。 つまり、次の項目へのポインターは、次の項目に埋め込まれたSINGLE_LIST_ENTRYまたはLIST_ENTRY構造体を指します。
  3. 二重にリンクされたリストの場合、リスト内の前の項目へのポインターは、現在のアイテムへのポインターを指します。 つまり、前の項目へのポインターは、前の項目に埋め込まれたLIST_ENTRY構造体を指します。
  4. 二重にリンクされたリストの場合、前の項目へのポインターは、次の項目へのポインターの直後にあります。 これは、メモリ内のLIST_ENTRY構造体のレイアウトと一致します。
SINGLE_LIST_ENTRYとLIST_ENTRYの構造とその使用方法の詳細については、Windows Driver Kit (WDK) のドキュメントを参照してください。

ExtRemoteList クラスには、次のメソッドが含まれています。

ExtRemoteList::ExtRemoteList (ExtRemoteData)

ExtRemoteList::ExtRemoteList (ULONG64)

StartHead

StartTail

HasNode

GetNodeOffset

次へ

class ExtRemoteList
{
public:
    ULONG64  m_Head;
    ULONG  m_LinkOffset;
    bool  m_Double;
    ULONG  m_MaxIter;
    ExtRemoteData  m_Node;
    ULONG  m_CurIter;
};
m_Head
リストの先頭のターゲットのメモリ内の場所。
m_LinkOffset
リスト アイテム内に埋め込まれたSINGLE_LIST_ENTRYまたはLIST_ENTRY構造体のオフセット。
m_Double
true 二重にリンクされたリストの場合は 。 false 1 つのリンクされたリストの場合は 。
m_MaxIter
リストの反復処理時に返すことができるノードの最大数。 m_MaxIterの既定値は 65536 です。 イテレーションで返すことができるノードの数を制限すると、ループから保護されます。
m_Node
リスト内の現在の項目へのポインター。 m_Node は、 StartHead または StartTail を使用してイテレーションが初期化されるまで設定されません。 m_Node は、ポインターを記述する ExtRemoteData 型です。
m_CurIter
現在のリストイテレーションで実行されたステップの数。 二重にリンクされたリストの場合、 m_CurIter は前方と後方の両方のステップで増加します。

メソッド

ExtRemoteList クラスには、これらのメソッドがあります。

 
ExtRemoteList::ExtRemoteList

ExtRemoteList(ExtRemoteData&,ULONG,bool) コンストラクターは、1 つのリンクリストまたは二重にリンクされたリストをラップする新しいインスタンスを作成します。
ExtRemoteList::ExtRemoteList

ExtRemoteList(ULONG64,ULONG,bool) コンストラクターは、1 つのリンクリストまたは二重にリンクされたリストをラップする新しいインスタンスを作成します。
ExtRemoteList::GetNodeOffset

GetNodeOffset メソッドは、現在のリスト アイテムのアドレスを返します。
ExtRemoteList::HasNode

HasNode メソッドは、リストイテレーションに現在の項目があるかどうかを判断します。
ExtRemoteList::Next

Next メソッドは、現在の項目をリスト内の次の項目に変更します。
ExtRemoteList::P rev

Prev メソッドは、現在の項目をリスト内の前の項目に変更します。
ExtRemoteList::StartHead

StartHead メソッドは、先頭から順に繰り返すリストを初期化します。
ExtRemoteList::StartTail

StartTail メソッドは、先頭から後方に反復処理するためにリストを初期化します。

要件

要件
対象プラットフォーム Windows
ヘッダー engextcpp.hpp (Engextcpp.hpp を含む)

こちらもご覧ください

ExtRemoteData

StartHead

StartTail