List_Insert


include vmm.inc

mov     esi, List    ; list handle
mov     eax, NewNode ; address of node to insert
mov     ecx, Node    ; address of node to insert after (0 to attach to head)
VMMcall List_Insert

Inserts a node immediately after the specified node in a list. A virtual device can insert a node into any list that has a matching node size and was created with the same flags. (It is an error, for example, to attach a node allocated from a list created as LF_Use_Heap to a list created without that flag, even if the node sizes agree.) This can be used, for example, to move a node from one list to another. Uses Flags.

List

Handle of the list. The handle must have been previously created using the List_Create service.

NewNode

Address of the node to insert. The node must have been previously created using the List_Allocate service.

Node

Address of a node in the list. The address must have been previously retrieved using the List_Get_First or List_Get_Next service. If this parameter is zero, the service attaches the new node to the head of the list.

This service inserts the new node between the specified node and the node immediately following the specified node. A virtual device can retrieve the address of the new node by calling the List_Get_Next service, and specifying the Node parameter.

See also List_Attach, List_Attach_Tail