ExtRemoteList クラス (engextcpp.hpp)
ExtRemoteList クラスは、1 つのリンクリストまたは二重にリンクされたリストのラッパーを提供します。 クラスには、リスト内を前後に移動するために使用できるメソッドが含まれています。
ExtRemoteList では 、NULL で終わるリストと循環リストの両方がサポートされます。
ExtRemoteList は、NT ベースのバージョンの Windows がリストを実装する方法で、リストが実装されていることを想定しています。 また、リストで SINGLE_LIST_ENTRY または LIST_ENTRY 構造体が使用されていることも想定しています。 特に、 ExtRemoteList はリストに次の特性があることを想定しています。
- リストには頭が付 きます。 ヘッドは、リストの先頭 (および、循環リストと二重リンク リストの場合は末尾) を表し、リスト アイテムではありません。 ヘッドの種類は、SINGLE_LIST_ENTRYまたはLIST_ENTRYです。
- リスト内の次の項目へのポインターは、次の項目へのポインターを指します。 つまり、次の項目へのポインターは、次の項目に埋め込まれたSINGLE_LIST_ENTRYまたはLIST_ENTRY構造体を指します。
- 二重にリンクされたリストの場合、リスト内の前の項目へのポインターは、現在のアイテムへのポインターを指します。 つまり、前の項目へのポインターは、前の項目に埋め込まれたLIST_ENTRY構造体を指します。
- 二重にリンクされたリストの場合、前の項目へのポインターは、次の項目へのポインターの直後にあります。 これは、メモリ内のLIST_ENTRY構造体のレイアウトと一致します。
ExtRemoteList クラスには、次のメソッドが含まれています。
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 を含む) |