Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La clase extRemoteList de proporciona un contenedor alrededor de una lista vinculada o doblemente vinculada. La clase contiene métodos que se pueden usar para avanzar y retroceder a través de la lista.
ExtRemoteList admite listas circulares y terminadas en NULL.
ExtRemoteList espera que se implemente una lista en la forma en que las versiones basadas en NT de Windows implementan una lista. También espera que la lista use la estructura SINGLE_LIST_ENTRY o LIST_ENTRY. En concreto, ExtRemoteList espera que las listas tengan las siguientes características:
- La lista tiene un principal de. El encabezado representa el principio (y, para listas circulares y doblemente vinculadas, el final) de la lista y no es un elemento de lista. El tipo de cabeza es SINGLE_LIST_ENTRY o LIST_ENTRY.
- El puntero al siguiente elemento de la lista apunta al puntero al elemento siguiente. En otras palabras, el puntero al elemento siguiente apunta a la estructura SINGLE_LIST_ENTRY o LIST_ENTRY incrustada en el elemento siguiente.
- Para las listas vinculadas doblemente, el puntero al elemento anterior de la lista apunta al puntero al elemento actual. En otras palabras, el puntero al elemento anterior apunta a la estructura LIST_ENTRY incrustada en el elemento anterior.
- Para las listas vinculadas doblemente, el puntero al elemento anterior sigue inmediatamente el puntero al siguiente elemento. Esto coincide con el diseño de la estructura LIST_ENTRY en memoria.
La clase ExtRemoteList incluye los métodos siguientes:
class ExtRemoteList
{
public:
ULONG64 m_Head;
ULONG m_LinkOffset;
bool m_Double;
ULONG m_MaxIter;
ExtRemoteData m_Node;
ULONG m_CurIter;
};
- m_Head
- Ubicación en la memoria del destino del encabezado de la lista.
- m_LinkOffset
- Desplazamiento de las estructuras SINGLE_LIST_ENTRY o LIST_ENTRY incrustadas en los elementos de lista.
- m_Double
-
truepara una lista doblemente vinculada.falsepara una lista vinculada singly. - m_MaxIter
- Número máximo de nodos que se pueden devolver al recorrer en iteración la lista. El valor predeterminado de m_MaxIter es 65536. Limitar el número de nodos que se pueden devolver en una iteración protege frente a bucles.
- m_Node
- Puntero al elemento actual de la lista. m_Node no se establece hasta que se inicializa una iteración mediante StartHead o StartTail. m_Node es de tipo ExtRemoteData, que describe el puntero.
- m_CurIter
- Número de pasos realizados en la iteración de lista actual. En el caso de las listas vinculadas doblemente, se aumenta m_CurIter para los pasos hacia delante y hacia atrás.
Métodos
La clase extRemoteList tiene estos métodos.
|
ExtRemoteList::ExtRemoteList Los constructores ExtRemoteList(ExtRemoteData&,ULONG,bool) crean una nueva instancia que encapsula una lista vinculada o doblemente vinculada. |
|
ExtRemoteList::ExtRemoteList Los constructores ExtRemoteList(ULONG64,ULONG,bool) crean una nueva instancia que encapsula una lista vinculada o doblemente vinculada. |
|
ExtRemoteList::GetNodeOffset El método GetNodeOffset devuelve la dirección del elemento de lista actual. |
|
ExtRemoteList::HasNode El método HasNode determina si hay un elemento actual en la iteración de lista. |
|
ExtRemoteList::Next El método Next cambia el elemento actual al siguiente elemento de la lista. |
|
ExtRemoteList::P rev El método Prev cambia el elemento actual al elemento anterior de la lista. |
|
ExtRemoteList::StartHead El método StartHead inicializa la lista para iterar hacia delante a partir de la cabeza. |
|
ExtRemoteList::StartTail El método StartTail inicializa la lista para iterar hacia atrás, comenzando en el encabezado. |
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Windows |
| encabezado de | engextcpp.hpp (incluya Engextcpp.hpp) |