mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
517 lines
14 KiB
517 lines
14 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
PNP.IDL
|
|
|
|
Abstract:
|
|
|
|
Contains the PnPr APIs which are used to remote the plug-and-play
|
|
APIs to the local or remote server via RPC. Also contains the RPC
|
|
specific data structures for these API.
|
|
|
|
Author:
|
|
|
|
Paula Tomlinson (paulat) 06-June-1995
|
|
|
|
Environment:
|
|
|
|
User-mode - Win32 - MIDL
|
|
|
|
Revision History:
|
|
|
|
06-June-1995 PaulaT
|
|
created
|
|
|
|
--*/
|
|
|
|
//
|
|
// Interface Attributes
|
|
//
|
|
|
|
[
|
|
uuid(8D9F4E40-A03D-11CE-8F69-08003E30051B),
|
|
version(0.0),
|
|
#ifdef __midl
|
|
ms_union,
|
|
#endif // __midl
|
|
pointer_default(unique)
|
|
]
|
|
|
|
//
|
|
// Interface Keyword
|
|
//
|
|
|
|
interface pnp
|
|
|
|
//
|
|
// Interface Body
|
|
//
|
|
|
|
{
|
|
|
|
import "imports.idl"; // import all the include files
|
|
|
|
//
|
|
// PnP Generic Handle used to bind from client to server.
|
|
//
|
|
|
|
typedef [handle,unique] LPWSTR PNP_HANDLE;
|
|
|
|
|
|
//
|
|
// Function Prototypes (UNICODE only, PNP is unicode internally)
|
|
//
|
|
//
|
|
// NOTE:
|
|
// The names of the functions are short so that when RPC
|
|
// prepends the interface name to the names, they are still
|
|
// unique.
|
|
//
|
|
//
|
|
// NOTE: Whenever [out,string] is used for an attribute, that means the
|
|
// client and server are assuming valid (predefined) sizes of buffers
|
|
// in order to more efficiently copy the data between address spaces
|
|
// (this is generally only used for internal buffers, not user buffers)
|
|
|
|
|
|
// these two routines are place holders --------------
|
|
CONFIGRET
|
|
PNP_Connect(
|
|
[in,string,unique] PNP_HANDLE UNCServerName
|
|
);
|
|
|
|
|
|
CONFIGRET
|
|
PNP_Disconnect(
|
|
[in,string,unique] PNP_HANDLE UNCServerName
|
|
);
|
|
// these two routines are place holders -------------
|
|
|
|
|
|
//
|
|
// rmisc.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_GetVersion(
|
|
[in] handle_t hBinding,
|
|
[out] WORD *pVersion
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetGlobalState(
|
|
[in] handle_t hBinding,
|
|
[out] PULONG pulState,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
CONFIGRET
|
|
PNP_InitDetection(
|
|
[in] handle_t hBinding
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_ReportLogOn(
|
|
[in] handle_t hBinding,
|
|
[in] BOOL bAdmin
|
|
);
|
|
|
|
|
|
//
|
|
// rtraver.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_ValidateDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetRootDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[out,string,size_is(ulLength)] LPWSTR pDeviceID,
|
|
[in] ULONG ulLength
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetRelatedDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulRelationship,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[out,string,size_is(*pulLength)] LPWSTR pRelatedDeviceID,
|
|
[in,out] PULONG pulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_EnumerateSubKeys(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulBranch,
|
|
[in] ULONG ulIndex,
|
|
[out,string,size_is(ulLength)] PWSTR Buffer,
|
|
[in] ULONG ulLength,
|
|
[out] PULONG pulRequiredLen,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetDeviceList(
|
|
[in] handle_t hBinding,
|
|
[in,string,unique] LPCWSTR pszFilter,
|
|
[out,size_is(*pulLength),length_is(*pulLength)] LPWSTR Buffer,
|
|
[in,out] PULONG pulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetDeviceListSize(
|
|
[in] handle_t hBinding,
|
|
[in,string,unique] LPCWSTR pszFilter,
|
|
[out] PULONG pulLen,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetDepth(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pszDeviceID,
|
|
[out] PULONG pulDepth,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
//
|
|
// rregprop.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_GetDeviceRegProp(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pDeviceID,
|
|
[in] ULONG ulProperty,
|
|
[in,out] PULONG pulRegDataType,
|
|
[out,size_is(*pulTransferLen),length_is(*pulTransferLen)] LPBYTE Buffer,
|
|
[in,out] PULONG pulTransferLen,
|
|
[in,out] PULONG pulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_SetDeviceRegProp(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pDeviceID,
|
|
[in] ULONG ulProperty,
|
|
[in] ULONG ulDataType,
|
|
[in,size_is(ulLength)] LPBYTE Buffer,
|
|
[in] ULONG ulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetClassInstance(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pDeviceID,
|
|
[out,string,size_is(ulLength)] LPWSTR pszClassInstance,
|
|
[in] ULONG ulLength
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_CreateKey(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pszSubKey,
|
|
[in] REGSAM samDesired,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_DeleteRegistryKey(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPCWSTR pszDeviceID,
|
|
[in,string,ref] LPCWSTR pszParentKey,
|
|
[in,string,ref] LPCWSTR pszChildKey,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetClassCount(
|
|
[in] handle_t hBinding,
|
|
[out] PULONG pulClassCount,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetClassName(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] PCWSTR pszClassGuid,
|
|
[out,string,size_is(*pulLength)] PWSTR Buffer,
|
|
[in,out] PULONG pulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_DeleteClassKey(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] PCWSTR pszClassGuid,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
//
|
|
// rdevnode.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_CreateDevInst(
|
|
[in] handle_t hBinding,
|
|
[in,out,string,size_is(ulLength)] LPWSTR pszDeviceID,
|
|
[in,string,ref] LPWSTR pszParentDeviceID,
|
|
[in] ULONG ulLength,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_DeviceInstanceAction(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulMajorAction,
|
|
[in] ULONG ulMinorAction,
|
|
[in,string,unique] PCWSTR pszDeviceInstance1,
|
|
[in,string,unique] PCWSTR pszDeviceInstance2
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetDeviceStatus(
|
|
[in] handle_t hBinding,
|
|
[in,string,unique] LPCWSTR pDeviceID,
|
|
[out] PULONG pulStatus,
|
|
[out] PULONG pulProblem,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_UninstallDevInst(
|
|
[in] handle_t hBinding,
|
|
[in,string,unique] LPCWSTR pDeviceID,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_AddID(
|
|
[in] handle_t hBinding,
|
|
[in,string,unique] LPCWSTR pszDeviceID,
|
|
[in,string,ref] LPCWSTR pszID,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
//
|
|
// rhwprof.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_HwProfFlags(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulAction,
|
|
[in,string,ref] LPCWSTR pDeviceID,
|
|
[in] ULONG ulConfig,
|
|
[in,out] PULONG pulValue,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetHwProfInfo(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulIndex,
|
|
[in,out,ref] HWPROFILEINFO *pHWProfileInfo,
|
|
[in] ULONG ulProfileInfoSize,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
//
|
|
// rlogconf.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_AddEmptyLogConf(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulPriority,
|
|
[out] PULONG pulLogConfTag,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_FreeLogConf(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfType,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetFirstLogConf(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfType,
|
|
[out] PULONG pulLogConfTag,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetNextLogConf(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfType,
|
|
[in] ULONG ulCurrentTag,
|
|
[out] PULONG pulNextTag,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
//
|
|
// rresdes.c
|
|
//
|
|
|
|
CONFIGRET
|
|
PNP_AddResDes(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[out] PULONG pulResourceTag,
|
|
[in,size_is(ResourceLen)] LPBYTE ResourceData,
|
|
[in] ULONG ResourceLen,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_FreeResDes(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulResourceTag,
|
|
[out] PULONG pulPreviousResType,
|
|
[out] PULONG pulPreviousResTag,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetNextResDes(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulResourceTag,
|
|
[out] PULONG pulNextResDesTag,
|
|
[out] PULONG pulNextResDesType,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetResDesData(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulResourceTag,
|
|
[out,size_is(BufferLen)] LPBYTE Buffer,
|
|
[in] ULONG BufferLen,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_GetResDesDataSize(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulResourceTag,
|
|
[out] PULONG pulSize,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_ModifyResDes(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] ULONG ulLogConfTag,
|
|
[in] ULONG ulLogConfType,
|
|
[in] RESOURCEID CurrentResourceID,
|
|
[in] RESOURCEID NewResourceID,
|
|
[in] ULONG ulResourceTag,
|
|
[in,size_is(ResourceLen)] LPBYTE ResourceData,
|
|
[in] ULONG ResourceLen,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_DetectResourceConflict(
|
|
[in] handle_t hBinding,
|
|
[in,string,ref] LPWSTR pDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in,size_is(ResourceLen)] LPBYTE ResourceData,
|
|
[in] ULONG ResourceLen,
|
|
[out] PBOOL pbConflictDetected,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
|
|
//---------------------------------------------------------
|
|
// misc unimplemented stubs
|
|
//---------------------------------------------------------
|
|
|
|
|
|
CONFIGRET
|
|
PNP_SetHwProf(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulHardwareProfile,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_QueryArbitratorFreeData(
|
|
[in] handle_t hBinding,
|
|
[out,size_is(ulDataLen)] LPBYTE pData,
|
|
[in] ULONG ulDataLen,
|
|
[in,string,ref] LPCWSTR pszDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_QueryArbitratorFreeSize(
|
|
[in] handle_t hBinding,
|
|
[out] PULONG pulSize,
|
|
[in,string,ref] LPCWSTR pszDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
CONFIGRET
|
|
PNP_RunDetection(
|
|
[in] handle_t hBinding,
|
|
[in] ULONG ulFlags
|
|
);
|
|
|
|
|
|
|
|
|
|
// [out, string, size_is( MAX_PATH)] WCHAR * ChildDeviceInstance
|
|
// [out,length_is(*pulLength),size_is(*pulLength)] LPWSTR RelatedDeviceInstance,
|
|
// [out,string] WCHAR *ChildDeviceInstance
|
|
// [out,length_is(*OutputStringLength),size_is(512)] WCHAR *OutputString,
|
|
// [in,out] PDWORD OutputStringLength,
|
|
|
|
}
|