ExtRemoteList 類別 (engextcpp.hpp)
ExtRemoteList 類別提供單引號或雙連結清單的包裝函式。 類別包含可用來向前和向後移動清單的方法。
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
單向連結清單。 - m_MaxIter
- 逐一查看清單時可傳回的最大節點數目。 m_MaxIter 的預設值為 65536。 限制可在反覆項目中傳回的節點數目,以防止迴圈。
- m_Node
- 清單中目前專案的指標。 在使用 startHead 或 StartTail初始化反覆專案之前,才會設定m_Node。 m_Node 類型為 ExtRemoteData,其描述指標。
- m_CurIter
- 目前清單反覆運算中所採取的步驟數目。 對於雙連結清單,m_CurIter 會針對向前和向後步驟增加。
方法
ExtRemoteList 類別具有這些方法。
ExtRemoteList::ExtRemoteList ExtRemoteList(ExtRemoteData&,ULONG,bool) 建構函式會建立新的實例,以包裝單字連結或雙連結清單。 |
ExtRemoteList::ExtRemoteList ExtRemoteList(ULONG64,ULONG,bool) 建構函式會建立一個新的實例,包裝單字連結或雙鏈接清單。 |
ExtRemoteList::GetNodeOffset GetNodeOffset 方法會傳回目前清單項目的位址。 |
ExtRemoteList::HasNode HasNode 方法會判斷清單反覆運算中是否有目前專案。 |
ExtRemoteList::Next Next 方法會將目前的項目變更為清單中的下一個專案。 |
ExtRemoteList::P rev Prev 方法會將目前的項目變更為清單中的上一個專案。 |
ExtRemoteList::StartHead StartHead 方法會初始化清單,以便從前端開始向前反覆運算。 |
ExtRemoteList::StartTail StartTail 方法會初始化清單,以便從前端開始往後反覆運算。 |
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
標頭 | engextcpp.hpp (包括 Engextcpp.hpp) |