/* * Plug and Play Manager RPC interface definition */ #define WORD unsigned short #define DWORD unsigned long #define CONFIGRET unsigned long [ uuid (809F4e40-A03D-11CE-8F69-08003E30051B), version(1.0), pointer_default(unique), explicit_handle ] interface pnp { CONFIGRET PNP_GetVersion(handle_t BindingHandle, [out] WORD *Version); CONFIGRET PNP_GetGlobalState(handle_t BindingHandle, [out] unsigned long *State, [in] unsigned long Flags); CONFIGRET PNP_ValidateDeviceInstance(handle_t BindingHandle, [in, string] wchar_t *DeviceInstance, [in] DWORD Flags); CONFIGRET PNP_GetRootDeviceInstance(handle_t BindingHandle, [out, string, size_is(Length)] wchar_t *DeviceInstance, [in] DWORD Length); cpp_quote("#define PNP_DEVICE_PARENT 1") cpp_quote("#define PNP_DEVICE_CHILD 2") cpp_quote("#define PNP_DEVICE_SIBLING 3") CONFIGRET PNP_GetRelatedDeviceInstance(handle_t BindingHandle, [in] DWORD Relationship, [in, string] wchar_t *DeviceId, [out, string, size_is(Length)] wchar_t *RelatedDeviceId, [in] DWORD Length, [in] DWORD Flags); cpp_quote("#define PNP_BRANCH_ENUM 1") cpp_quote("#define PNP_BRANCH_CLASS 2") CONFIGRET PNP_EnumerateSubKeys(handle_t BindingHandle, [in] unsigned long Branch, [in] unsigned long Index, [out, string, size_is(Length)] wchar_t *Buffer, [in] unsigned long Length, [out] unsigned long *RequiredLength, [in] DWORD Flags); // CONFIGRET PNP_GetDeviceList(handle_t BindingHandle, // [in, unique, string] wchar_t *Filter, // [out, string, size_is(*Length)] unsigned char *Buffer // [in, out] unsigned long *Length, // [in] DWORD Flags); CONFIGRET PNP_GetDeviceListSize(handle_t BindingHandle, [in, unique, string] wchar_t *Filter, [out] unsigned long *Length, [in] DWORD Flags); CONFIGRET PNP_GetDepth(handle_t BindingHandle, [in, string] wchar_t *DeviceInstance, [out] unsigned long *Depth, [in] DWORD Flags); CONFIGRET PNP_GetDeviceRegProp(handle_t BindingHandle, [in, string] wchar_t *DeviceInstance, [in] unsigned long Property, [in, out] unsigned long *DataType, [out, size_is(*TransferLen)] char *Buffer, [in, out] unsigned long *TransferLen, [in, out] unsigned long *Length, [in] DWORD Flags); CONFIGRET PNP_SetDeviceRegProp(handle_t BindingHandle, [in, string] wchar_t *DeviceId, [in] unsigned long Property, [in] unsigned long DataType, [in, size_is(Length)] char *Buffer, [in] unsigned long Length, [in] unsigned long Flags); CONFIGRET PNP_GetClassName(handle_t BindingHandle, [in, string] wchar_t *ClassGuid, [out, string, size_is(*Length)] wchar_t *Buffer, [in, out] unsigned long *Length, [in] unsigned long Flags); CONFIGRET PNP_DeleteClassKey(handle_t BindingHandle, [in, string] wchar_t *ClassGuid, [in] unsigned long Flags); CONFIGRET PNP_GetDeviceStatus(handle_t BindingHandle, [in, string] wchar_t *DeviceInstance, [out] unsigned long *Status, [out] unsigned long *Problem, [in] DWORD Flags); CONFIGRET PNP_SetDeviceProblem(handle_t BindingHandle, [in, string] wchar_t *DeviceInstance, [in] unsigned long Problem, [in] DWORD Flags); }