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
- 목록의 현재 항목에 대한 포인터입니다. m_NodeStartHead 또는 StartTail을 사용하여 반복이 초기화될 때까지 설정되지 않습니다. m_Node 포인터 를 설명하는 ExtRemoteData 형식입니다.
- m_CurIter
- 현재 목록 반복에서 수행된 단계 수입니다. 이중 연결 목록의 경우 앞으로 및 뒤로 단계 모두에 대해 m_CurIter 증가합니다.
메서드
ExtRemoteList 클래스에는 이러한 메서드가 있습니다.
ExtRemoteList::ExtRemoteList ExtRemoteList(ExtRemoteData&,ULONG,bool) 생성자는 singly-linked 또는 이중으로 연결된 목록을 래핑하는 새 instance 만듭니다. |
ExtRemoteList::ExtRemoteList ExtRemoteList(ULONG64,ULONG,bool) 생성자는 singly-linked 또는 이중 연결 목록을 래핑하는 새 instance 만듭니다. |
ExtRemoteList::GetNodeOffset GetNodeOffset 메서드는 현재 목록 항목의 주소를 반환합니다. |
ExtRemoteList::HasNode HasNode 메서드는 목록 반복에 현재 항목이 있는지 확인합니다. |
ExtRemoteList::Next Next 메서드는 현재 항목을 목록의 다음 항목으로 변경합니다. |
ExtRemoteList::P rev Prev 메서드는 현재 항목을 목록의 이전 항목으로 변경합니다. |
ExtRemoteList::StartHead StartHead 메서드는 머리부터 앞으로 반복하기 위한 목록을 초기화합니다. |
ExtRemoteList::StartTail StartTail 메서드는 머리에서 시작하여 뒤로 반복하기 위한 목록을 초기화합니다. |
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | engextcpp.hpp(Engextcpp.hpp 포함) |