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 方法會初始化清單,以向後反覆運算,從頭開始。 |
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | engextcpp.hpp (包括 Engextcpp.hpp) |