共用方式為


ExtRemoteList 類別 (engextcpp.hpp)

ExtRemoteList 類別提供單引號或雙連結清單的包裝函式。 類別包含可用來向前和向後移動清單的方法。

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 驅動程式套件 (WDK) 檔。

ExtRemoteList 類別包含下列方法:

ExtRemoteList::ExtRemoteList (ExtRemoteData)

ExtRemoteList::ExtRemoteList (ULONG64)

StartHead

StartTail

HasNode

GetNodeOffset

下一個

Prev

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_Nodem_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)

另請參閱

ExtRemoteData

StartHead

StartTail