/*++
*******************************************************************************
* Copyright (c) 2000 Digi International Inc., All Rights Reserved             *
*                                                                             *
* This software contains proprietary and confidential information of Digi     *
* International Inc.  By accepting transfer of this copy, Recipient agrees    *
* to retain this software in confidence, to prevent disclosure to others,     *
* and to make no use of this software other than that for which it was        *
* delivered.  This is an unpublished copyrighted work of Digi International   *
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly   *
* prohibited.                                                                 *
*                                                                             *
* Restricted Rights Legend                                                    *
*                                                                             *
* Use, duplication, or disclosure by the Government is subject to             *
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in         *
* Technical Data and Computer Software clause at DFARS 252.227-7031 or        *
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -          *
* Restricted Rights at 48 CFR 52.227-19, as applicable.                       *
*                                                                             *
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343          *
*                                                                             *
*******************************************************************************

Module Name:

	asynwrite.h

Abstract:

	Serial Write functions.

Author:

	Michael Zarns

--*/
#ifndef ASYNWRITE_H
#define ASYNWRITE_H

NTSTATUS AsynDeviceWrite( IN PDEVICE_OBJECT pDevice, IN PIRP pIrp );
NTSTATUS AsynWriteInitialize( IN PASYN_PORT_EXT pWrite, IN HANDLE hkRegistry );
NTSTATUS AsynSetWriteTimeout( IN PASYN_WRITE pWrite, IN PSERIAL_TIMEOUTS TimeOut );
VOID	 AsynCompleteWaitingIrp( IN PASYN_PORT_EXT pPortExt );
NTSTATUS AsynGetWriteTimeout( IN PASYN_WRITE pWrite, IN PSERIAL_TIMEOUTS TimeOut );
ULONG	 AsynWriteCommStatus( IN PASYN_WRITE pWrite );
VOID	 AsynWriteClearStats( IN PASYN_WRITE pWrite );
ULONG	 AsynWriteGetWriteStatus( IN PASYN_WRITE pWrite );
VOID	 AsynWritePurge( IN PASYN_PORT_EXT pExt, IN ULONG Mask );
VOID	 AsynWaitTxEmpty( PASYN_WRITE pWrite, BOOLEAN SetEvent );

typedef struct _ASYN_SHORT_WRITE_CONTEXT
{
	ULONG		UniqueNumber;
	ULONG		NumberIrps;

}ASYN_SHORT_WRITE_CONTEXT, *PASYN_SHORT_WRITE_CONTEXT;



#endif
