/*++
*******************************************************************************
* Copyright (c) 1990-98 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:

   dsuser.h

Abstract:

   Wrapper routines for usermode dstream api requests.

Author:

   Michael Zarns

--*/
#ifndef DSUSER_H
#define DSUSER_H

#ifdef __cplusplus
extern "C" {
#endif

BOOL __cdecl 
DsOpen(
	IN HANDLE hDevice,
	IN CHAR const * const pDeviceName,
	OUT PHANDLE phStream );

BOOL __cdecl
DsClose(
	IN HANDLE hDevice,
	IN HANDLE hStream );

BOOL __cdecl
DsPurge(
	IN HANDLE hDevice,
	IN HANDLE hStream,
	IN ULONG  Flags );

BOOL __cdecl
DsIoctl(
	IN HANDLE hDevice,
	IN HANDLE hStream,
	IN ULONG  Command,
	IN PVOID  pData,
	IN ULONG  cbData );

BOOL __cdecl
DsPutMsg(
	IN HANDLE      hDevice,
	IN HANDLE      hStream,
	IN PVOID       pControl,
	IN ULONG       cbControl,
	IN PVOID       pData,
	IN ULONG       cbData,
	IN DS_PRIORITY Priority );

BOOL __cdecl
DsGetMsg(
	IN  HANDLE      hDevice,
	IN  HANDLE      hStream,
	IN  PVOID       pControl,
	IN  ULONG       cbMaxControl,
	OUT PULONG      pcbControl,
	IN  PVOID       pData,
	IN  ULONG       cbMaxData,
	OUT PULONG      pcbData,
	IN  DS_PRIORITY Priority );

BOOL __cdecl
DsGetMsgEx(
	IN HANDLE       hDevice,
	IN PDS_GETMSG   pGetMsg,
	IN LPOVERLAPPED pOl );

#ifdef __cplusplus
}
#endif

#endif
