Something went wrong. Try again.
Reactos
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/* Copyright (c) 2003 Juan Lang * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */#ifndef __NBCMDQUEUE_H__#define __NBCMDQUEUE_H__
/* This file defines a queue of pending NetBIOS commands. The queue operations * are thread safe, with the exception of NBCmdQueueDestroy: ensure no other * threads are manipulating the queue when calling NBCmdQueueDestroy. */
struct NBCmdQueue;
/* Allocates a new command queue from heap. */struct NBCmdQueue *NBCmdQueueCreate(HANDLE heap) DECLSPEC_HIDDEN;
/* Adds ncb to queue. Assumes queue is not NULL, and ncb is not already in the * queue. If ncb is already in the queue, returns NRC_TOOMANY. */UCHAR NBCmdQueueAdd(struct NBCmdQueue *queue, PNCB ncb) DECLSPEC_HIDDEN;
/* Cancels the given ncb. Blocks until the command completes. Implicitly * removes ncb from the queue. Assumes queue and ncb are not NULL, and that * ncb has been added to queue previously. * Returns NRC_CMDCAN on a successful cancellation, NRC_CMDOCCR if the command * completed before it could be cancelled, and various other return values for * different failures. */UCHAR NBCmdQueueCancel(struct NBCmdQueue *queue, PNCB ncb) DECLSPEC_HIDDEN;
/* Sets the return code of the given ncb, and implicitly removes the command * from the queue. Assumes queue and ncb are not NULL, and that ncb has been * added to queue previously. * Returns NRC_GOODRET on success. */UCHAR NBCmdQueueComplete(struct NBCmdQueue *queue, PNCB ncb, UCHAR retcode) DECLSPEC_HIDDEN;
/* Cancels all pending commands in the queue (useful for a RESET or a shutdown). * Returns when all commands have been completed. */UCHAR NBCmdQueueCancelAll(struct NBCmdQueue *queue) DECLSPEC_HIDDEN;
/* Frees all memory associated with the queue. Blocks until all commands * pending in the queue have been completed. */void NBCmdQueueDestroy(struct NBCmdQueue *queue) DECLSPEC_HIDDEN;
#endif /* __NBCMDQUEUE_H__ */