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

   DsLib.c

Abstract:

   DSTREAMS Library Interface Module

Author:

   Jeff Romatoski

--*/

#ifndef _DSLIB_H_
#define _DSLIB_H_

#include "pnp.h"

//
// PnP User calls
//

NTSTATUS
DsPnpInitialize(
    IN  PDRIVER_OBJECT  DriverObject,
    IN  PPNP_INIT_DATA	InitializationData
    );

NTSTATUS
DsPnpAddDevice( 
	IN	PDRIVER_OBJECT		pDriverObject,
	IN	PDEVICE_OBJECT		pFunctionalDeviceObject,
	IN	PDEVICE_OBJECT		pPhysicalDeviceObject,
	IN	PUNICODE_STRING		pucInstance,
	IN	PUNICODE_STRING		pucDeviceName,
	OUT PVOID				*ppfdoExtension
    );

NTSTATUS
PnpFdoDispatch(
	PPNP_FDO_EXTENSION	pfdoExtension, 
	PIRP                pIrp
	);

NTSTATUS
PnpPdoDispatch(
	PDEVICE_OBJECT	   pDeviceObject, 
	PIRP               pIrp
	);

NTSTATUS
PnpFdoCheckState(
	IN	PPNP_FDO_EXTENSION	pfdoExtension
	);

void
PnpFdoDeleteDevice(
	IN	PPNP_FDO_EXTENSION	pfdoExtension
	);


NTSTATUS
PnpPowerFdo(
	PPNP_FDO_EXTENSION		pfdoExtension, 
	PIRP					pIrp
	);


NTSTATUS
PnpPowerPdo(
	PDEVICE_OBJECT		pDeviceObject, 
	PIRP				pIrp
	);

#endif /* _DSLIB_H_ */

