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 PBOOL unsigned long *
11 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
13 pointer_default(unique),
19 // CONFIGRET PNP_Unknown0(handle_t BindingHandle);
22 // CONFIGRET PNP_Unknown1(handle_t BindingHandle);
25 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
29 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
30 [out] unsigned long *State,
31 [in] unsigned long Flags);
34 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
35 [in, string] wchar_t *DeviceInstance,
39 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
40 [out, string, size_is(Length)] wchar_t *DeviceInstance,
44 cpp_quote("#define PNP_DEVICE_PARENT 1")
45 cpp_quote("#define PNP_DEVICE_CHILD 2")
46 cpp_quote("#define PNP_DEVICE_SIBLING 3")
47 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
48 [in] DWORD Relationship,
49 [in, string] wchar_t *DeviceId,
50 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
55 cpp_quote("#define PNP_BRANCH_ENUM 1")
56 cpp_quote("#define PNP_BRANCH_CLASS 2")
57 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
58 [in] unsigned long Branch,
59 [in] unsigned long Index,
60 [out, string, size_is(Length)] wchar_t *Buffer,
61 [in] unsigned long Length,
62 [out] unsigned long *RequiredLength,
66 // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle,
67 // [in, unique, string] wchar_t *Filter,
68 // [out, string, size_is(*Length)] unsigned char *Buffer
69 // [in, out] unsigned long *Length,
73 CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle,
74 [in, unique, string] wchar_t *Filter,
75 [out] unsigned long *Length,
79 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
80 [in, string] wchar_t *DeviceInstance,
81 [out] unsigned long *Depth,
85 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
86 [in, string] wchar_t *DeviceInstance,
87 [in] unsigned long Property,
88 [in, out] unsigned long *DataType,
89 [out, size_is(*TransferLen)] char *Buffer,
90 [in, out] unsigned long *TransferLen,
91 [in, out] unsigned long *Length,
95 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
96 [in, string] wchar_t *DeviceId,
97 [in] unsigned long Property,
98 [in] unsigned long DataType,
99 [in, size_is(Length)] char *Buffer,
100 [in] unsigned long Length,
101 [in] unsigned long Flags);
104 CONFIGRET PNP_CreateKey(handle_t BindingHandle,
105 [in, string] wchar_t *SubKey,
106 [in] unsigned long DesiredAccess,
107 [in] unsigned long Flags);
110 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
111 [in, string] wchar_t *ClassGuid,
112 [out, string, size_is(*Length)] wchar_t *Buffer,
113 [in, out] unsigned long *Length,
114 [in] unsigned long Flags);
117 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
118 [in, string] wchar_t *ClassGuid,
119 [in] unsigned long Flags);
122 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
123 [in, string] wchar_t *DeviceInstance,
124 [out] unsigned long *Status,
125 [out] unsigned long *Problem,
129 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
130 [in, string] wchar_t *DeviceInstance,
131 [in] unsigned long Problem,
135 CONFIGRET PNP_IsDockStationPresent(handle_t BindingHandle,
139 CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);