다음을 통해 공유


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 구조 및 사용에 대한 자세한 내용은 WDK(Windows 드라이버 키트) 설명서를 참조하세요.

ExtRemoteList 클래스에는 다음 메서드가 포함됩니다.

ExtRemoteList::ExtRemoteList(ExtRemoteData)

ExtRemoteList::ExtRemoteList(ULONG64)

StartHead

StartTail

HasNode

GetNodeOffset

다음

이전

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 포함)

추가 정보

ExtRemoteData

StartHead

StartTail