- Implement CM_Enumerate_Enumerators[_Ex]A/W
[reactos.git] / reactos / include / idl / pnp.idl
1 /*
2 * Plug and Play Manager RPC interface definition
3 */
4
5 #define WORD unsigned short
6 #define DWORD unsigned long
7 #define CONFIGRET unsigned long
8
9 [
10 uuid (809F4e40-A03D-11CE-8F69-08003E30051B),
11 version(1.0),
12 pointer_default(unique),
13 explicit_handle
14 ]
15 interface pnp
16 {
17 CONFIGRET PNP_GetVersion(handle_t BindingHandle,
18 [out] WORD *Version);
19
20 CONFIGRET PNP_GetGlobalState(handle_t BindingHandle,
21 [out] unsigned long *State,
22 [in] unsigned long Flags);
23
24 CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle,
25 [in, string] wchar_t *DeviceInstance,
26 [in] DWORD Flags);
27
28 CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle,
29 [out, string, size_is(Length)] wchar_t *DeviceInstance,
30 [in] DWORD Length);
31
32 cpp_quote("#define PNP_DEVICE_PARENT 1")
33 cpp_quote("#define PNP_DEVICE_CHILD 2")
34 cpp_quote("#define PNP_DEVICE_SIBLING 3")
35 CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle,
36 [in] DWORD Relationship,
37 [in, string] wchar_t *DeviceId,
38 [out, string, size_is(Length)] wchar_t *RelatedDeviceId,
39 [in] DWORD Length,
40 [in] DWORD Flags);
41
42 cpp_quote("#define PNP_BRANCH_ENUM 1")
43 cpp_quote("#define PNP_BRANCH_CLASS 2")
44 CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle,
45 [in] unsigned long Branch,
46 [in] unsigned long Index,
47 [out, string, size_is(Length)] wchar_t *Buffer,
48 [in] unsigned long Length,
49 [out] unsigned long *RequiredLength,
50 [in] DWORD Flags);
51
52 CONFIGRET PNP_GetDepth(handle_t BindingHandle,
53 [in, string] wchar_t *DeviceInstance,
54 [out] unsigned long *Depth,
55 [in] DWORD Flags);
56
57 CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle,
58 [in, string] wchar_t *DeviceInstance,
59 [in] unsigned long Property,
60 [in, out] unsigned long *DataType,
61 [out, size_is(*TransferLen)] char *Buffer,
62 [in, out] unsigned long *TransferLen,
63 [in, out] unsigned long *Length,
64 [in] DWORD Flags);
65
66 CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle,
67 [in, string] wchar_t *DeviceId,
68 [in] unsigned long Property,
69 [in] unsigned long DataType,
70 [in, size_is(Length)] char *Buffer,
71 [in] unsigned long Length,
72 [in] unsigned long Flags);
73
74 CONFIGRET PNP_GetClassName(handle_t BindingHandle,
75 [in, string] wchar_t *ClassGuid,
76 [out, string, size_is(*Length)] wchar_t *Buffer,
77 [in, out] unsigned long *Length,
78 [in] unsigned long Flags);
79
80 CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle,
81 [in, string] wchar_t *ClassGuid,
82 [in] unsigned long Flags);
83
84 CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle,
85 [in, string] wchar_t *DeviceInstance,
86 [out] unsigned long *Status,
87 [out] unsigned long *Problem,
88 [in] DWORD Flags);
89
90 CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle,
91 [in, string] wchar_t *DeviceInstance,
92 [in] unsigned long Problem,
93 [in] DWORD Flags);
94 }