2 * Plug and Play Manager RPC interface definition
5 #define WORD unsigned short
6 #define DWORD unsigned long
7 #define CONFIGRET unsigned long
8 #define BOOL unsigned long
9 #define PBOOL unsigned long *
12 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
14 pointer_default(unique),
20 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
23 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
26 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
30 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
31 [out] unsigned long *State,
32 [in] unsigned long Flags);
35 CONFIGRET PNP_InitDetection(handle_t BindingHandle);
38 CONFIGRET PNP_ReportLogOn(handle_t BindingHandle,
40 [in] DWORD ProcessId);
43 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
44 [in, string] wchar_t *DeviceInstance,
48 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
49 [out, string, size_is(Length)] wchar_t *DeviceInstance,
53 cpp_quote("#define PNP_DEVICE_PARENT 1")
54 cpp_quote("#define PNP_DEVICE_CHILD 2")
55 cpp_quote("#define PNP_DEVICE_SIBLING 3")
56 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
57 [in] DWORD Relationship,
58 [in, string] wchar_t *DeviceId,
59 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
64 cpp_quote("#define PNP_BRANCH_ENUM 1")
65 cpp_quote("#define PNP_BRANCH_CLASS 2")
66 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
67 [in] unsigned long Branch,
68 [in] unsigned long Index,
69 [out, string, size_is(Length)] wchar_t *Buffer,
70 [in] unsigned long Length,
71 [out] unsigned long *RequiredLength,
75 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
76 // [in, unique, string] wchar_t *Filter,
77 // [out, string, size_is(*Length)] unsigned char *Buffer
78 // [in, out] unsigned long *Length,
82 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
83 [in, unique, string] wchar_t *Filter,
84 [out] unsigned long *Length,
88 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
89 [in, string] wchar_t *DeviceInstance,
90 [out] unsigned long *Depth,
94 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
95 [in, string] wchar_t *DeviceInstance,
96 [in] unsigned long Property,
97 [in, out] unsigned long *DataType,
98 [out, size_is(*TransferLen)] char *Buffer,
99 [in, out] unsigned long *TransferLen,
100 [in, out] unsigned long *Length,
104 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
105 [in, string] wchar_t *DeviceId,
106 [in] unsigned long Property,
107 [in] unsigned long DataType,
108 [in, size_is(Length)] char *Buffer,
109 [in] unsigned long Length,
110 [in] unsigned long Flags);
113 CONFIGRET PNP_GetClassInstance(handle_t BindingHandle,
114 [in, string] wchar_t *DeviceId,
115 [out, string, size_is(Length)] wchar_t *Buffer,
116 [in] unsigned long Length);
119 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
120 [in, string] wchar_t *SubKey,
121 [in] unsigned long DesiredAccess,
122 [in] unsigned long Flags);
125 CONFIGRET PNP_DeleteRegistryKey(handle_t BindingHandle,
126 [in, string] wchar_t *DeviceId,
127 [in, string] wchar_t *ParentKey,
128 [in, string] wchar_t *ChildKey,
129 [in] unsigned long Flags);
132 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
133 [in, string] wchar_t *ClassGuid,
134 [out, string, size_is(*Length)] wchar_t *Buffer,
135 [in, out] unsigned long *Length,
136 [in] unsigned long Flags);
139 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
140 [in, string] wchar_t *ClassGuid,
141 [in] unsigned long Flags);
144 CONFIGRET PNP_DeviceInstanceAction(handle_t BindingHandle,
145 [in] unsigned long MajorAction,
146 [in] unsigned long MinorAction,
147 [in, unique, string] wchar_t *DeviceInstance1,
148 [in, unique, string] wchar_t *DeviceInstance2);
151 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
152 [in, string] wchar_t *DeviceInstance,
153 [out] unsigned long *Status,
154 [out] unsigned long *Problem,
158 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
159 [in, string] wchar_t *DeviceInstance,
160 [in] unsigned long Problem,
164 CONFIGRET PNP_UninstallDevInst(handle_t BindingHandle,
165 [in, string] wchar_t *DeviceInstance,
169 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
173 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
176 CONFIGRET PNP_RunDetection(handle_t BindingHandle,
177 [in] unsigned long Flags);