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


#if !defined(_DRIVERSERVICES__H)

#define SERVICES_H
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000



#ifdef NT5

#include <BaseTsd.h>
#include <setupapi.h>

#ifndef MPSCLASS
#define MPSCLASS	TEXT("MultiPortSerial")
#endif
#ifndef MODEMCLASS
#define MODEMCLASS	TEXT("Modem")
#endif
#ifndef NETCLASS
#define NETCLASS	TEXT("Net")
#endif
#ifndef PORTCLASS
#define PORTCLASS	TEXT("Ports")
#endif

extern BOOL FW_EXPORTED_API CreateService(LPCTSTR lpszHdwId,LPCTSTR lpszRegPath,
								   LPCTSTR lpszParentDevice,
								   CString& szInstance,
								   BOOL bPortClass =FALSE);
extern BOOL FW_EXPORTED_API DeleteService(LPCTSTR lpszServiceInstance,BOOL bPortClass =FALSE);
extern BOOL FW_EXPORTED_API RestartService(LPCTSTR lpszServiceInstance,BOOL bPortClass =FALSE);
extern BOOL FW_EXPORTED_API RestartDriver(HDEVINFO DeviceInfoSet, 
										  PSP_DEVINFO_DATA DeviceInfoData,
										  DWORD dwState=DICS_PROPCHANGE);

BOOL FW_EXPORTED_API FindDevice(const HDEVINFO hDevInfo,const CString& szInstanceId,PSP_DEVINFO_DATA psp);

HDEVINFO FW_EXPORTED_API GetDevInfo(LPCTSTR lpszClassName);

#endif

#endif // SERVICES_H