mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 20:36:35 +00:00

- Notification handles must be context handles - Register and unregister notification targets
941 lines
24 KiB
Text
941 lines
24 KiB
Text
/*
|
|
* Plug and Play Manager RPC interface definition
|
|
*/
|
|
|
|
#include <ms-dtyp.idl>
|
|
|
|
typedef [context_handle] void *PNP_NOTIFY_HANDLE;
|
|
typedef PNP_NOTIFY_HANDLE *PPNP_NOTIFY_HANDLE;
|
|
|
|
const unsigned long PNP_MAX_STRING_LEN = 32767;
|
|
const unsigned long PNP_MAX_DEVICE_ID_LEN = 200;
|
|
const unsigned long PNP_MAX_GUID_STRING_LEN = 39;
|
|
const unsigned long PNP_MAX_DEVINTERFACE_LEN = PNP_MAX_STRING_LEN;
|
|
const unsigned long PNP_MAX_CULTURE_NAME_LEN = 85;
|
|
const unsigned long PNP_MAX_CM_PATH = 360;
|
|
const unsigned long PNP_MAX_PROP_SIZE = 65534;
|
|
const unsigned long PNP_MAX_PROP_COUNT = 32767;
|
|
const unsigned long PNP_MAX_BUFFER_SIZE = 16000000;
|
|
|
|
cpp_quote("#ifndef _CFGMGR32_H_")
|
|
typedef unsigned long RESOURCEID;
|
|
|
|
typedef struct _HWPROFILEINFO {
|
|
DWORD HWPI_ulHWProfile;
|
|
WCHAR HWPI_szFriendlyName[80];
|
|
DWORD HWPI_dwFlags;
|
|
} HWPROFILEINFO;
|
|
|
|
cpp_quote("#endif")
|
|
typedef unsigned long DEVPROPTYPE;
|
|
typedef [range(0, PNP_MAX_PROP_SIZE)] unsigned long PNP_PROP_SIZE;
|
|
typedef [range(0, PNP_MAX_PROP_COUNT)] unsigned long PNP_PROP_COUNT;
|
|
typedef [range(0, PNP_MAX_STRING_LEN)] unsigned long PNP_RPC_STRING_LEN;
|
|
typedef [range(0, PNP_MAX_BUFFER_SIZE)] unsigned long PNP_RPC_BUFFER_SIZE;
|
|
typedef PNP_PROP_SIZE *PPNP_PROP_SIZE;
|
|
typedef PNP_PROP_COUNT *PPNP_PROP_COUNT;
|
|
typedef PNP_RPC_STRING_LEN *PPNP_RPC_STRING_LEN;
|
|
typedef PNP_RPC_BUFFER_SIZE *PPNP_RPC_BUFFER_SIZE;
|
|
|
|
cpp_quote("#ifndef _CFG_INCLUDED_")
|
|
|
|
typedef enum _PNP_VETO_TYPE {
|
|
PNP_VetoTypeUnknown = 0,
|
|
PNP_VetoLegacyDevice = 1,
|
|
PNP_VetoPendingClose = 2,
|
|
PNP_VetoWindowsApp = 3,
|
|
PNP_VetoWindowsService = 4,
|
|
PNP_VetoOutstandingOpen = 5,
|
|
PNP_VetoDevice = 6,
|
|
PNP_VetoDriver = 7,
|
|
PNP_VetoIllegalDeviceRequest = 8,
|
|
PNP_VetoInsufficientPower = 9,
|
|
PNP_VetoNonDisableable = 10,
|
|
PNP_VetoLegacyDriver = 11,
|
|
PNP_VetoInsufficientRights = 12,
|
|
} *PPNP_VETO_TYPE;
|
|
|
|
cpp_quote("#endif")
|
|
|
|
cpp_quote("#if 0")
|
|
|
|
typedef struct _BUSNUMBER_DES {
|
|
DWORD BUSD_Count;
|
|
DWORD BUSD_Type;
|
|
DWORD BUSD_Flags;
|
|
DWORD BUSD_Alloc_Base;
|
|
DWORD BUSD_Alloc_End;
|
|
} BUSNUMBER_DES, *PBUSNUMBER_DES;
|
|
|
|
typedef struct _BUSNUMBER_RANGE {
|
|
DWORD BUSR_Min;
|
|
DWORD BUSR_Max;
|
|
DWORD BUSR_nBusNumbers;
|
|
DWORD BUSR_Flags;
|
|
} BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
|
|
|
|
typedef struct _BUSNUMBER_RESOURCE {
|
|
BUSNUMBER_DES BusNumber_Header;
|
|
BUSNUMBER_RANGE BusNumber_Data[1];
|
|
} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
|
|
|
|
typedef struct _CS_DES {
|
|
DWORD CSD_SignatureLength;
|
|
DWORD CSD_LegacyDataOffset;
|
|
DWORD CSD_LegacyDataSize;
|
|
DWORD CSD_Flags;
|
|
GUID CSD_ClassGuid;
|
|
BYTE CSD_Signature[1];
|
|
} CS_DES, *PCS_DES;
|
|
|
|
typedef struct _CS_RESOURCE {
|
|
CS_DES CS_Header;
|
|
} CS_RESOURCE, *PCS_RESOURCE;
|
|
|
|
typedef struct _DEVPRIVATE_DES {
|
|
DWORD PD_Count;
|
|
DWORD PD_Type;
|
|
DWORD PD_Data1;
|
|
DWORD PD_Data2;
|
|
DWORD PD_Data3;
|
|
DWORD PD_Flags;
|
|
} DEVPRIVATE_DES, *PDEVPRIVATE_DES;
|
|
|
|
typedef struct _DEVPRIVATE_RANGE {
|
|
DWORD PR_Data1;
|
|
DWORD PR_Data2;
|
|
DWORD PR_Data3;
|
|
} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
|
|
|
|
typedef struct _DEVPRIVATE_RESOURCE {
|
|
DEVPRIVATE_DES PRV_Header;
|
|
DEVPRIVATE_RANGE PRV_Data[1];
|
|
} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
|
|
|
|
typedef struct _DMA_DES {
|
|
DWORD DD_Count;
|
|
DWORD DD_Type;
|
|
DWORD DD_Flags;
|
|
unsigned long DD_Alloc_Chan;
|
|
} DMA_DES, *PDMA_DES;
|
|
|
|
typedef struct _DMA_RANGE {
|
|
DWORD DR_Min;
|
|
DWORD DR_Max;
|
|
DWORD DR_Flags;
|
|
} DMA_RANGE, *PDMA_RANGE;
|
|
|
|
typedef struct _DMA_RESOURCE {
|
|
DMA_DES DMA_Header;
|
|
DMA_RANGE DMA_Data[1];
|
|
} DMA_RESOURCE, *PDMA_RESOURCE;
|
|
|
|
typedef struct _IO_DES {
|
|
DWORD IOD_Count;
|
|
DWORD IOD_Type;
|
|
unsigned __int64 IOD_AllocBase;
|
|
unsigned __int64 IOD_AllocEnd;
|
|
DWORD IOD_DesFlags;
|
|
} IO_DES, *PIO_DES;
|
|
|
|
typedef struct _IO_RANGE {
|
|
unsigned __int64 IOR_Align;
|
|
DWORD IOR_nPorts;
|
|
unsigned __int64 IOR_Min;
|
|
unsigned __int64 IOR_Max;
|
|
DWORD IOR_RangeFlags;
|
|
unsigned __int64 IOR_Alias;
|
|
} IO_RANGE, *PIO_RANGE;
|
|
|
|
typedef struct _IO_RESOURCE {
|
|
IO_DES IO_Header;
|
|
IO_RANGE IO_Data[1];
|
|
} IO_RESOURCE, *PIO_RESOURCE;
|
|
|
|
typedef struct _IRQ_DES {
|
|
DWORD IRQD_Count;
|
|
DWORD IRQD_Type;
|
|
DWORD IRQD_Flags;
|
|
DWORD IRQD_Alloc_Num;
|
|
DWORD IRQD_Affinity;
|
|
} IRQ_DES, *PIRQ_DES;
|
|
|
|
typedef struct _IRQ_RANGE {
|
|
DWORD IRQR_Min;
|
|
DWORD IRQR_Max;
|
|
DWORD IRQR_Flags;
|
|
} IRQ_RANGE, *PIRQ_RANGE;
|
|
|
|
typedef struct _IRQ_RESOURCE {
|
|
IRQ_DES IO_Header;
|
|
IRQ_RANGE IO_Data[1];
|
|
} IRQ_RESOURCE, *PIRQ_RESOURCE;
|
|
|
|
typedef struct _MEM_DES {
|
|
DWORD MD_Count;
|
|
DWORD MD_Type;
|
|
unsigned __int64 MD_Alloc_Base;
|
|
unsigned __int64 MD_Alloc_End;
|
|
DWORD MD_Flags;
|
|
DWORD Reserved;
|
|
} MEM_DES, *PMEM_DES;
|
|
|
|
typedef struct _MEM_RANGE {
|
|
__int64 MR_Align;
|
|
DWORD MR_nBytes;
|
|
__int64 MR_Min;
|
|
__int64 MR_Max;
|
|
DWORD MR_Flags;
|
|
DWORD MR_Reserved;
|
|
} MEM_RANGE, *PMEM_RANGE;
|
|
|
|
typedef struct _MEM_RESOURCE {
|
|
MEM_DES MEM_Header;
|
|
MEM_RANGE MEM_Data[1];
|
|
} MEM_RESOURCE, *PMEM_RESOURCE;
|
|
|
|
typedef struct _MFCARD_DES {
|
|
DWORD PMF_Count;
|
|
DWORD PMF_Type;
|
|
DWORD PMF_Flags;
|
|
BYTE PMF_ConfigOptions;
|
|
BYTE PMF_IoResourceIndex;
|
|
BYTE PMF_Reserved[2];
|
|
DWORD PMF_ConfigRegisterBase;
|
|
} MFCARD_DES, *PMFCARD_DES;
|
|
|
|
typedef struct _MFCARD_RESOURCE {
|
|
MFCARD_DES MfCard_Header;
|
|
} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
|
|
|
|
typedef struct _PCCARD_DES {
|
|
DWORD PCD_Count;
|
|
DWORD PCD_Type;
|
|
DWORD PCD_Flags;
|
|
BYTE PCD_ConfigIndex;
|
|
BYTE PCD_Reserved[3];
|
|
DWORD PCD_MemoryCardBase1;
|
|
DWORD PCD_MemoryCardBase2;
|
|
} PCCARD_DES, *PPCCARD_DES;
|
|
|
|
typedef struct _PCCARD_RESOURCE {
|
|
PCCARD_DES PcCard_Header;
|
|
} PCCARD_RESOURCE, *PPCARD_RESOURCE;
|
|
|
|
cpp_quote("#endif")
|
|
|
|
typedef struct _PNP_CONFLICT_ENTRY {
|
|
DWORD DeviceInstance;
|
|
DWORD DeviceFlags;
|
|
DWORD ResourceType;
|
|
__int64 ResourceStart;
|
|
__int64 ResourceEnd;
|
|
DWORD ResourceFlags;
|
|
} PNP_CONFLICT_ENTRY, *PPNP_CONFLICT_ENTRY;
|
|
|
|
typedef struct _PNP_CONFLICT_LIST {
|
|
DWORD Reserved1;
|
|
DWORD Reserved2;
|
|
DWORD ConflictsCounted;
|
|
DWORD ConflictsListed;
|
|
DWORD RequiredBufferSize;
|
|
PNP_CONFLICT_ENTRY ConflictEntry[1];
|
|
} PNP_CONFLICT_LIST, *PPNP_CONFLICT_LIST;
|
|
|
|
typedef struct _PNP_CONFLICT_STRINGS {
|
|
DWORD NullDeviceInstance;
|
|
WCHAR DeviceInstanceStrings[1];
|
|
} PNP_CONFLICT_STRINGS, *PPNP_CONFLICT_STRINGS;
|
|
|
|
typedef struct _DEVPROPKEY {
|
|
GUID fmtid;
|
|
DWORD pid;
|
|
} DEVPROPKEY;
|
|
|
|
[
|
|
uuid (8D9F4E40-A03D-11CE-8F69-08003E30051B),
|
|
version(1.0),
|
|
pointer_default(unique),
|
|
endpoint("ncacn_np:[\\pipe\\plugplay]")
|
|
#ifndef __midl
|
|
,explicit_handle
|
|
#endif
|
|
]
|
|
interface pnp
|
|
{
|
|
/* Function 0 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_Disconnect(
|
|
[in] handle_t hBinding); /* FIXME */
|
|
|
|
/* Function 1 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_Connect(
|
|
[in] handle_t hBinding); /* FIXME */
|
|
|
|
/* Function 2 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetVersion(
|
|
[in] handle_t hBinding,
|
|
[out] WORD *pVersion);
|
|
|
|
/* Function 3 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetGlobalState(
|
|
[in] handle_t hBinding,
|
|
[out] DWORD *pulState,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 4 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_InitDetection(
|
|
[in] handle_t hBinding);
|
|
|
|
/* Function 5 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_ReportLogOn(
|
|
[in] handle_t hBinding,
|
|
[in] BOOL Admin,
|
|
[in] DWORD ProcessId);
|
|
|
|
/* Function 6 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_ValidateDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 7 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetRootDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[out, string, size_is(ulLength)] LPWSTR pDeviceID,
|
|
[in] PNP_RPC_STRING_LEN ulLength);
|
|
|
|
/* Function 8 */
|
|
cpp_quote("#define PNP_GET_PARENT_DEVICE_INSTANCE 0x1")
|
|
cpp_quote("#define PNP_GET_CHILD_DEVICE_INSTANCE 0x2")
|
|
cpp_quote("#define PNP_GET_SIBLING_DEVICE_INSTANCE 0x3")
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetRelatedDeviceInstance(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulRelationship,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[out, string, size_is(*pulLength)] LPWSTR pRelatedDeviceId,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 9 */
|
|
cpp_quote("#define PNP_ENUMERATOR_SUBKEYS 0x1")
|
|
cpp_quote("#define PNP_CLASS_SUBKEYS 0x2")
|
|
DWORD
|
|
__stdcall
|
|
PNP_EnumerateSubKeys(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulBranch,
|
|
[in] DWORD ulIndex,
|
|
[out, string, size_is(ulLength)] LPWSTR Buffer,
|
|
[in] PNP_RPC_STRING_LEN ulLength,
|
|
[out] PNP_RPC_STRING_LEN *pulRequiredLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 10 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetDeviceList(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pszFilter,
|
|
[out, size_is(*pulLength), length_is(*pulLength)] LPWSTR Buffer,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 11 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetDeviceListSize(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pszFilter,
|
|
[out] PNP_RPC_BUFFER_SIZE *pulLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 12 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetDepth(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszDeviceID,
|
|
[out] DWORD *pulDepth,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 13 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetDeviceRegProp(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulProperty,
|
|
[in, out] DWORD *pulRegDataType,
|
|
[out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
|
|
[in, out] PNP_PROP_SIZE *pulTransferLen,
|
|
[in, out] PNP_PROP_SIZE *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 14 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_SetDeviceRegProp(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceId,
|
|
[in] DWORD ulProperty,
|
|
[in] DWORD ulDataType,
|
|
[in, size_is(ulLength)] BYTE *Buffer,
|
|
[in] PNP_PROP_SIZE ulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 15 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetClassInstance(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceId,
|
|
[out, string, size_is(ulLength)] LPWSTR pszClassInstance,
|
|
[in] PNP_RPC_STRING_LEN ulLength);
|
|
|
|
/* Function 16 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_CreateKey(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszSubKey,
|
|
[in] DWORD samDesired,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 17 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_DeleteRegistryKey(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszDeviceID,
|
|
[in, string, ref] LPWSTR pszParentKey,
|
|
[in, string, ref] LPWSTR pszChildKey,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 18 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetClassCount(
|
|
[in] handle_t hBinding,
|
|
[out] DWORD *pulClassCount,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 19 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetClassName(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszClassGuid,
|
|
[out, string, size_is(*pulLength)] LPWSTR Buffer,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 20 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_DeleteClassKey(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszClassGuid,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 21 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetInterfaceDeviceAlias(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszInterfaceDevice,
|
|
[in] GUID *AliasInterfaceGuid,
|
|
[out, string, size_is(*pulTransferLen)] LPWSTR pszAliasInterfaceDevice,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in, out] PNP_RPC_STRING_LEN *pulTransferLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 22 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetInterfaceDeviceList(
|
|
[in] handle_t hBinding,
|
|
[in] GUID *InterfaceGuid,
|
|
[in, string, unique] LPWSTR pszDeviceID,
|
|
[out, size_is(*pulLength), length_is(*pulLength)] BYTE *Buffer,
|
|
[in, out] PNP_RPC_BUFFER_SIZE *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 23 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetInterfaceDeviceListSize(
|
|
[in] handle_t hBinding,
|
|
[out] PNP_RPC_BUFFER_SIZE *pulLen,
|
|
[in] GUID *InterfaceGuid,
|
|
[in, string, unique] LPWSTR pszDeviceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 24 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RegisterDeviceClassAssociation(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pszDeviceID,
|
|
[in] GUID *InterfaceGuid,
|
|
[in, string, unique] LPWSTR pszReference,
|
|
[out, string, size_is(*pulTransferLen)] LPWSTR pszSymLink,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in, out] PNP_RPC_STRING_LEN *pulTransferLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 25 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_UnregisterDeviceClassAssociation(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pszInterfaceDevice,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 26 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetClassRegProp(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszClassGuid,
|
|
[in] DWORD ulProperty,
|
|
[in, out] DWORD *pulRegDataType,
|
|
[out, size_is(*pulTransferLen), length_is(*pulTransferLen)] BYTE *Buffer,
|
|
[in, out] PNP_RPC_STRING_LEN *pulTransferLen,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 27 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_SetClassRegProp(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszClassGuid,
|
|
[in] DWORD ulProperty,
|
|
[in] DWORD ulDataType,
|
|
[in, size_is(ulLength)] BYTE *Buffer,
|
|
[in] PNP_PROP_SIZE ulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 28 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_CreateDevInst(
|
|
[in] handle_t hBinding,
|
|
[in, out, string, size_is(ulLength)] LPWSTR pszDeviceID,
|
|
[in, string, ref] LPWSTR pszParentDeviceID,
|
|
[in] PNP_RPC_STRING_LEN ulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 29 */
|
|
cpp_quote("#define PNP_DEVINST_MOVE 0x2")
|
|
cpp_quote("#define PNP_DEVINST_SETUP 0x3")
|
|
cpp_quote("#define PNP_DEVINST_ENABLE 0x4")
|
|
cpp_quote("#define PNP_DEVINST_DISABLE 0x5")
|
|
cpp_quote("#define PNP_DEVINST_REENUMERATE 0x7")
|
|
DWORD
|
|
__stdcall
|
|
PNP_DeviceInstanceAction(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulMajorAction,
|
|
[in] DWORD ulMinorAction,
|
|
[in, string, unique] LPWSTR pszDeviceInstance1,
|
|
[in, string, unique] LPWSTR pszDeviceInstance2);
|
|
|
|
/* Function 30 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetDeviceStatus(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pDeviceID,
|
|
[out] DWORD *pulStatus,
|
|
[out] DWORD *pulProblem,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 31 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_SetDeviceProblem(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pDeviceID,
|
|
[in] DWORD ulProblem,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 32 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_DisableDevInst(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pDeviceID,
|
|
[in, out, unique] PPNP_VETO_TYPE pVetoType,
|
|
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
|
|
[in] DWORD ulNameLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 33 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_UninstallDevInst(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pDeviceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 34 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_AddID(
|
|
[in] handle_t hBinding,
|
|
[in, string, unique] LPWSTR pszDeviceID,
|
|
[in, string, ref] LPWSTR pszID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 35 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RegisterDriver(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszDeviceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 36 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_QueryRemove(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszDeviceID,
|
|
[in, out, unique] PPNP_VETO_TYPE pVetoType,
|
|
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
|
|
[in] DWORD ulNameLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 37 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RequestDeviceEject(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pszDeviceID,
|
|
[in, out, unique] PPNP_VETO_TYPE pVetoType,
|
|
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
|
|
[in] DWORD ulNameLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 38 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_IsDockStationPresent(
|
|
[in] handle_t hBinding,
|
|
[in, out, unique] BOOL *Present);
|
|
|
|
/* Function 39 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RequestEjectPC(
|
|
[in] handle_t hBinding);
|
|
|
|
/* Function 40 */
|
|
cpp_quote("#define PNP_GET_HWPROFFLAGS 0x1")
|
|
cpp_quote("#define PNP_SET_HWPROFFLAGS 0x2")
|
|
DWORD
|
|
__stdcall
|
|
PNP_HwProfFlags(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulAction,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulConfig,
|
|
[in, out] DWORD *pulValue,
|
|
[in, out, unique] PPNP_VETO_TYPE pVetoType,
|
|
[in, out, string, unique, size_is(ulNameLength)] LPWSTR pszVetoName,
|
|
[in] DWORD ulNameLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 41 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetHwProfInfo(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulIndex,
|
|
[in, out, ref] HWPROFILEINFO *pHWProfileInfo,
|
|
[in, range(0, 168)] DWORD ulProfileInfoSize,
|
|
/* FIXME: should be [in, range(0, sizeof(HWPROFILEINFO))] DWORD ulProfileInfoSize, */
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 42 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_AddEmptyLogConf(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulPriority,
|
|
[out] DWORD *pulLogConfTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 43 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_FreeLogConf(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfType,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 44 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetFirstLogConf(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfType,
|
|
[out] DWORD *pulLogConfTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 45 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetNextLogConf(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfType,
|
|
[in] DWORD ulCurrentTag,
|
|
[out] DWORD *pulNextTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 46 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetLogConfPriority(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulType,
|
|
[in] DWORD ulTag,
|
|
[out] DWORD *pPriority,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 47 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_AddResDes(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[out] DWORD *pulResourceTag,
|
|
[in, size_is(ResourceLen)] BYTE *ResourceData,
|
|
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 48 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_FreeResDes(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulResourceTag,
|
|
[out] DWORD *pulPreviousResType,
|
|
[out] DWORD *pulPreviousResTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 49 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetNextResDes(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulResourceTag,
|
|
[out] DWORD *pulNextResType,
|
|
[out] DWORD *pulNextResTag,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 50 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetResDesData(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulResourceTag,
|
|
[out, size_is(BufferLen)] BYTE *Buffer,
|
|
[in] PNP_RPC_BUFFER_SIZE BufferLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 51 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetResDesDataSize(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulResourceTag,
|
|
[out] DWORD *pulSize,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 52 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_ModifyResDes(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] DWORD ulLogConfTag,
|
|
[in] DWORD ulLogConfType,
|
|
[in] RESOURCEID CurrentResourceID,
|
|
[in] RESOURCEID NewResourceID,
|
|
[in] DWORD ulResourceTag,
|
|
[in, size_is(ResourceLen)] BYTE *ResourceData,
|
|
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 53 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_DetectResourceConflict(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in, size_is(ResourceLen)] BYTE *ResourceData,
|
|
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
|
|
[out] BOOL *pbConflictDetected,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 54 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_QueryResConfList(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in, size_is(ResourceLen)] BYTE *ResourceData,
|
|
[in] PNP_RPC_BUFFER_SIZE ResourceLen,
|
|
[out, size_is(BufferLen)] BYTE *Buffer,
|
|
[in] PNP_RPC_BUFFER_SIZE BufferLen,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 55 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_SetHwProf(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulHardwareProfile,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 56 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_QueryArbitratorFreeData(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(DataLen)] BYTE *pData,
|
|
[in] DWORD DataLen,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 57 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_QueryArbitratorFreeSize(
|
|
[in] handle_t hBinding,
|
|
[out] DWORD *pulSize,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in] RESOURCEID ResourceID,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 58 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RunDetection(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 59 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_RegisterNotification(
|
|
[in] handle_t hBinding,
|
|
[in] DWORD ulUnknown2,
|
|
[in, string, ref] LPWSTR pszName,
|
|
[in, size_is(ulNotificationFilterSize)] BYTE *pNotificationFilter,
|
|
[in] DWORD ulNotificationFilterSize,
|
|
[in] DWORD ulFlags,
|
|
[out] PPNP_NOTIFY_HANDLE pNotifyHandle,
|
|
[in] DWORD ulProcessId,
|
|
[in] DWORD *pulUnknown9);
|
|
|
|
/* Function 60 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_UnregisterNotification(
|
|
[in] handle_t hBinding,
|
|
[in, out] PPNP_NOTIFY_HANDLE pNotifyHandle);
|
|
|
|
cpp_quote("#if _WIN32_WINNT >= 0x0501")
|
|
|
|
/* Function 61 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetCustomDevProp(
|
|
[in] handle_t hBinding,
|
|
[in, string, ref] LPWSTR pDeviceID,
|
|
[in, string, ref] LPWSTR CustomPropName,
|
|
[out] DWORD *pulRegDataType,
|
|
[out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
|
|
[out] PNP_RPC_STRING_LEN *pulTransferLen,
|
|
[in, out] PNP_RPC_STRING_LEN *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 62 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetVersionInternal(
|
|
[in] handle_t hBinding,
|
|
[in, out] WORD *pwVersion);
|
|
|
|
/* Function 63 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetBlockedDriverInfo(
|
|
[in] handle_t hBinding,
|
|
[out, size_is(*pulLength), length_is(*pulTransferLen)] BYTE *Buffer,
|
|
[out] PNP_RPC_BUFFER_SIZE *pulTransferLen,
|
|
[in, out] PNP_RPC_BUFFER_SIZE *pulLength,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Function 64 */
|
|
DWORD
|
|
__stdcall
|
|
PNP_GetServerSideDeviceInstallFlags(
|
|
[in] handle_t hBinding,
|
|
[out] DWORD *pulSSDIFlags,
|
|
[in] DWORD ulFlags);
|
|
|
|
/* Functions 65 to 74 are Vista+, see r63565 */
|
|
|
|
cpp_quote("#endif /* _WIN32_WINNT >= 0x0501 */")
|
|
|
|
}
|