/*++
*********************************************************************************
* 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:

   Pdo.h

Abstract:

   This DSTREAMS provider PDO Pnp/Power Management Header.

Author:

   Jeff Romatoski

--*/

#ifndef _PDO_H_
#define _PDO_H_

#define PDO_INSTANCE_DIGITS 5

// DSTREAMS PDO Device Extension
typedef struct PNP_PDO_EXTENSION
{

	PNP_DEVICE_TYPE		DeviceType;		// Type (This must be the first field in the structure)
	PDEVICE_OBJECT		pDeviceObject;	// My device object (a PDO)
	LIST_ENTRY          ChildListEntry;	// Entry on FDO_DEVICE_EXT list of child PDO's
	PPNP_FDO_EXTENSION 	pFdo;			// parent (FDO) device extension
	UNICODE_STRING      HardwareId;		// DIGI570
	UNICODE_STRING      RegPath;		// {4D36E972...}\0001\Parameters\ISDN\0
	UNICODE_STRING      InstanceId;		// Instance of HardwareId on this adapter

} PNP_PDO_EXTENSION, *PPNP_PDO_EXTENSION;


NTSTATUS
PnpPdoCreateDevice( 
	IN PPNP_FDO_EXTENSION	fdoExtension,
	IN HANDLE				hkChild,
	IN PUNICODE_STRING		pParametersKey, 				// "\{GUID}\0008\Parameters"
	IN PUNICODE_STRING		pServiceKey, 					// "ISDN\0"
	IN PUNICODE_STRING		pServiceSubkey OPTIONAL,		// "0"
	IN ULONG				iService, 
	IN ULONG				iLine,
	IN PUNICODE_STRING		pHardwareId						// "DIGIBRI"
	);					

VOID
PnpPdoDeleteDevice( 
	PPNP_PDO_EXTENSION ppdoExtension
	);

#endif /* _PDO_H_ */

