|
|
//
// Copyright (c) Microsoft Corporation 1993-1996
//
// rovdi.h
//
// History:
// 11-13-95 ScottH Separated from NT modem class installer
//
#ifndef __ROVDI_H__
#define __ROVDI_H__
#ifdef WINNT
#define REENUMERATE_PORT
#include <setupapi.h>
#include <bustype.h>
//------------------------------------------------------------------------
//------------------------------------------------------------------------
//
// Enumerate ports
//
DECLARE_HANDLE32(HPORTDATA);
typedef BOOL (WINAPI FAR * ENUMPORTPROC)(HPORTDATA hportdata, LPARAM lParam);
DWORD APIENTRY EnumeratePorts( IN ENUMPORTPROC pfnDevice, IN LPARAM lParam); OPTIONAL
typedef struct tagPORTDATA_A { DWORD cbSize; DWORD nSubclass; CHAR szPort[MAX_BUF]; CHAR szFriendly[MAX_BUF]; } PORTDATA_A, FAR * LPPORTDATA_A;
typedef struct tagPORTDATA_W { DWORD cbSize; DWORD nSubclass; WCHAR szPort[MAX_BUF]; WCHAR szFriendly[MAX_BUF]; } PORTDATA_W, FAR * LPPORTDATA_W; #ifdef UNICODE
#define PORTDATA PORTDATA_W
#define LPPORTDATA LPPORTDATA_W
#else
#define PORTDATA PORTDATA_A
#define LPPORTDATA LPPORTDATA_A
#endif
// Port subclass values
#define PORT_SUBCLASS_PARALLEL 0
#define PORT_SUBCLASS_SERIAL 1
BOOL APIENTRY PortData_GetPropertiesW( IN HPORTDATA hportdata, OUT LPPORTDATA_W pdataBuf); BOOL APIENTRY PortData_GetPropertiesA( IN HPORTDATA hportdata, OUT LPPORTDATA_A pdataBuf); #ifdef UNICODE
#define PortData_GetProperties PortData_GetPropertiesW
#else
#define PortData_GetProperties PortData_GetPropertiesA
#endif
//
// These set of routines map friendly names of ports to
// (non-friendly) port names, and vice-versa.
//
DECLARE_HANDLE32(HPORTMAP);
BOOL APIENTRY PortMap_Create( OUT HPORTMAP FAR * phportmap);
DWORD APIENTRY PortMap_GetCount( IN HPORTMAP hportmap);
BOOL APIENTRY PortMap_GetFriendlyW( IN HPORTMAP hportmap, IN LPCWSTR pwszPortName, OUT LPWSTR pwszBuf, IN DWORD cchBuf); BOOL APIENTRY PortMap_GetFriendlyA( IN HPORTMAP hportmap, IN LPCSTR pszPortName, OUT LPSTR pszBuf, IN DWORD cchBuf); #ifdef UNICODE
#define PortMap_GetFriendly PortMap_GetFriendlyW
#else
#define PortMap_GetFriendly PortMap_GetFriendlyA
#endif
BOOL APIENTRY PortMap_GetPortNameW( IN HPORTMAP hportmap, IN LPCWSTR pwszFriendly, OUT LPWSTR pwszBuf, IN DWORD cchBuf); BOOL APIENTRY PortMap_GetPortNameA( IN HPORTMAP hportmap, IN LPCSTR pszFriendly, OUT LPSTR pszBuf, IN DWORD cchBuf); #ifdef UNICODE
#define PortMap_GetPortName PortMap_GetPortNameW
#else
#define PortMap_GetPortName PortMap_GetPortNameA
#endif
#ifdef REENUMERATE_PORT
BOOL APIENTRY PortMap_GetDevNodeW( IN HPORTMAP hportmap, IN LPCWSTR pszPortName, OUT LPDWORD pdwDevNode); BOOL APIENTRY PortMap_GetDevNodeA( IN HPORTMAP hportmap, IN LPCSTR pszPortName, OUT LPDWORD pdwDevNode); #ifdef UNICODE
#define PortMap_GetDevNode PortMap_GetDevNodeW
#else
#define PortMap_GetDevNode PortMap_GetDevNodeW
#endif
#endif //REENUMERATE_PORT
BOOL APIENTRY PortMap_Free( IN HPORTMAP hportmap);
//-----------------------------------------------------------------------------------
// Wrappers to insulate us a little bit if we need it. We need it.
//-----------------------------------------------------------------------------------
#define CplDiCreateDeviceInfoList SetupDiCreateDeviceInfoList
#define CplDiGetDeviceInfoListClass SetupDiGetDeviceInfoListClass
#define CplDiCreateDeviceInfo SetupDiCreateDeviceInfo
#define CplDiOpenDeviceInfo SetupDiOpenDeviceInfo
#define CplDiGetDeviceInstanceId SetupDiGetDeviceInstanceId
#define CplDiDeleteDeviceInfo SetupDiDeleteDeviceInfo
#define CplDiEnumDeviceInfo SetupDiEnumDeviceInfo
#define CplDiDestroyDeviceInfoList SetupDiDestroyDeviceInfoList
#define CplDiRegisterDeviceInfo SetupDiRegisterDeviceInfo
#define CplDiBuildDriverInfoList SetupDiBuildDriverInfoList
#define CplDiEnumDriverInfo SetupDiEnumDriverInfo
#define CplDiGetSelectedDriver SetupDiGetSelectedDriver
#define CplDiSetSelectedDriver SetupDiSetSelectedDriver
#define CplDiGetDriverInfoDetail SetupDiGetDriverInfoDetail
#define CplDiDestroyDriverInfoList SetupDiDestroyDriverInfoList
#define CplDiGetClassDevs SetupDiGetClassDevs
#define CplDiGetClassDescription SetupDiGetClassDescription
#define CplDiOpenClassRegKey SetupDiOpenClassRegKey
#define CplDiCreateDevRegKey SetupDiCreateDevRegKey
#define CplDiOpenDevRegKey SetupDiOpenDevRegKey
#define CplDiGetHwProfileList SetupDiGetHwProfileList
#define CplDiGetDeviceRegistryProperty SetupDiGetDeviceRegistryProperty
#define CplDiSetDeviceRegistryProperty SetupDiSetDeviceRegistryProperty
#define CplDiGetClassInstallParams SetupDiGetClassInstallParams
#define CplDiSetClassInstallParams SetupDiSetClassInstallParams
/*#ifdef DEBUG
BOOL CplDiSetDeviceInstallParams( IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, IN PSP_DEVINSTALL_PARAMS DeviceInstallParams ); BOOL CplDiGetDeviceInstallParams( IN HDEVINFO DeviceInfoSet, IN PSP_DEVINFO_DATA DeviceInfoData, OUT PSP_DEVINSTALL_PARAMS DeviceInstallParams ); #else*/
#define CplDiGetDeviceInstallParams SetupDiGetDeviceInstallParams
#define CplDiSetDeviceInstallParams SetupDiSetDeviceInstallParams
//#endif //DEBUG
#define CplDiGetDriverInstallParams SetupDiGetDriverInstallParams
#define CplDiSetDriverInstallParams SetupDiSetDriverInstallParams
#define CplDiClassNameFromGuid SetupDiClassNameFromGuid
#define CplDiClassGuidsFromName SetupDiClassGuidsFromName
#define CplDiGetHwProfileFriendlyName SetupDiGetHwProfileFriendlyName
#define CplDiGetWizardPage SetupDiGetWizardPage
#define CplDiGetSelectedDevice SetupDiGetSelectedDevice
#define CplDiSetSelectedDevice SetupDiSetSelectedDevice
#define CplDiInstallDevice SetupDiInstallDevice
#define CplDiCallClassInstaller SetupDiCallClassInstaller
#define CplDiRemoveDevice SetupDiRemoveDevice
#define CplDiGetActualSectionToInstall SetupDiGetActualSectionToInstall
// Functions to support common device Responses key:
// Common key flags for OpenCommonResponseskey() and OpenCommonDriverKey().
typedef enum { CKFLAG_OPEN = 0x0001, CKFLAG_CREATE = 0x0002 } CKFLAGS;
BOOL PUBLIC OpenCommonDriverKey( IN HKEY hkeyDrv, OPTIONAL IN PSP_DRVINFO_DATA pdrvData, OPTIONAL IN REGSAM samAccess, OUT PHKEY phkeyComDrv);
BOOL PUBLIC OpenCommonResponsesKey( IN HKEY hkeyDrv, IN CKFLAGS ckFlags, IN REGSAM samAccess, OUT PHKEY phkeyResp, OUT LPDWORD lpdwExisted);
BOOL PUBLIC OpenResponsesKey( IN HKEY hkeyDrv, OUT PHKEY phkeyResp);
BOOL PUBLIC FindCommonDriverKeyName( IN HKEY hkeyDrv, IN DWORD cbKeyName, OUT LPTSTR pszKeyName);
BOOL PUBLIC GetCommonDriverKeyName( IN HKEY hkeyDrv, OPTIONAL IN PSP_DRVINFO_DATA pdrvData, OPTIONAL IN DWORD cbKeyName, OUT LPTSTR pszKeyName);
BOOL PUBLIC DeleteCommonDriverKey( IN HKEY hkeyDrv);
BOOL PUBLIC DeleteCommonDriverKeyByName( IN LPTSTR pszKeyName);
#endif // WINNT
#endif __ROVDI_H__
|