/* get the next buffer node after the specified buffer in the queue if the specified buffer is the last node in the queue , return NULL  */
RTK_BUFFER* RtbQueueNextNode(IN RTB_QUEUE_HEAD *RtkQueueHead, IN RTK_BUFFER *pRtkBuffer)
/* get the next buffer node after the specified buffer in the queue if the specified buffer is the last node in the queue , return NULL  */
RTK_BUFFER* RtbQueueNextNode(IN RTB_QUEUE_HEAD *RtkQueueHead, IN RTK_BUFFER *pRtkBuffer)
{
    RTK_BUFFER* pBuf;
    aos_mutex_lock(&RtkQueueHead->Lock, AOS_WAIT_FOREVER);
    pBuf = (RTK_BUFFER*)RtkQueueHead->List.Prev;
    if(pBuf == pRtkBuffer)
    {
        aos_mutex_unlock(&RtkQueueHead->Lock);
        return NULL;
    }
    pBuf = (RTK_BUFFER*)pRtkBuffer->List.Next;
    aos_mutex_unlock(&RtkQueueHead->Lock);
    return pBuf;
}