Windows NT 4.0 source code leak
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

/*++
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,
}