From a5b363cd9464a7723dc5e30eb1f747065470e51d Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 10 Jul 2005 11:49:10 +0000 Subject: [PATCH] - Implement CM_Get_Global_State/CM_Get_Global_State_Ex. - All RPC-Calls to umpnpmgr return CONFIGRET. svn path=/trunk/; revision=16525 --- reactos/include/idl/pnp.idl | 14 ++- reactos/include/wine/cfgmgr32.h | 46 +++++++-- reactos/lib/setupapi/cfgmgr.c | 141 ++++++++++++++++++++------ reactos/lib/setupapi/rpc.c | 85 ++++++++++------ reactos/lib/setupapi/rpc_private.h | 29 ++++++ reactos/lib/setupapi/setupapi.spec | 4 +- reactos/services/umpnpmgr/umpnpmgr.c | 14 ++- reactos/w32api/include/ddk/cfg.h | 56 +++++----- reactos/w32api/include/ddk/cfgmgr32.h | 40 ++++---- 9 files changed, 300 insertions(+), 129 deletions(-) create mode 100644 reactos/lib/setupapi/rpc_private.h diff --git a/reactos/include/idl/pnp.idl b/reactos/include/idl/pnp.idl index 9308c1bdad1..1c24309f2b4 100644 --- a/reactos/include/idl/pnp.idl +++ b/reactos/include/idl/pnp.idl @@ -1,8 +1,9 @@ /* - * Plug and Play Manager interface definition + * Plug and Play Manager RPC interface definition */ #define WORD unsigned short +#define DWORD unsigned long #define CONFIGRET unsigned long [ @@ -13,9 +14,14 @@ ] interface pnp { -// unsigned long PNP_GetRootDeviceInstance(handle_t BindingHandle, -// [out, string, size_is(Length)] wchar_t *DeviceInstance, -// [in] unsigned long Length); 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_GetRootDeviceInstance(handle_t BindingHandle, +// [out, string, size_is(Length)] wchar_t *DeviceInstance, +// [in] DWORD Length); } diff --git a/reactos/include/wine/cfgmgr32.h b/reactos/include/wine/cfgmgr32.h index 1295710b370..c140baed2a6 100644 --- a/reactos/include/wine/cfgmgr32.h +++ b/reactos/include/wine/cfgmgr32.h @@ -31,23 +31,45 @@ typedef HANDLE HMACHINE; typedef HMACHINE *PHMACHINE; typedef DWORD DEVINST; typedef DEVINST *PDEVINST; +typedef ULONG REGDISPOSITION; typedef CHAR *DEVINSTID_A; typedef WCHAR *DEVINSTID_W; DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID) -#define CR_SUCCESS 0x00000000 -#define CR_OUT_OF_MEMORY 0x00000002 -#define CR_FAILURE 0x00000013 -#define CR_BUFFER_SMALL 0x0000001A -#define CR_INVALID_DATA 0x0000001F +#define CR_SUCCESS 0x00000000 +#define CR_OUT_OF_MEMORY 0x00000002 +#define CR_INVALID_POINTER 0x00000003 +#define CR_INVALID_FLAG 0x00000004 +#define CR_INVALID_DEVNODE 0x00000005 +#define CR_INVALID_DEVINST CR_INVALID_DEVNODE +#define CR_NO_SUCH_DEVNODE 0x0000000D +#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE +#define CR_FAILURE 0x00000013 +#define CR_BUFFER_SMALL 0x0000001A +#define CR_REGISTRY_ERROR 0x0000001D +#define CR_INVALID_DEVICE_ID 0x0000001E +#define CR_INVALID_DATA 0x0000001F #define CR_NO_SUCH_VALUE 0x00000025 -#define CR_INVALID_MACHINENAME 0x0000002F -#define CR_ACCESS_DENIED 0x00000033 +#define CR_NO_SUCH_REGISTRY_KEY 0x0000002E +#define CR_INVALID_MACHINENAME 0x0000002F +#define CR_ACCESS_DENIED 0x00000033 #define MAX_CLASS_NAME_LEN 32 #define MAX_GUID_STRING_LEN 39 #define MAX_PROFILE_LEN 80 +#define MAX_DEVICE_ID_LEN 200 +#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN + +/* Disposition values for CM_Open_Class_Key[_Ex] */ +#define RegDisposition_OpenAlways 0x00000000 +#define RegDisposition_OpenExisting 0x00000001 +#define RegDisposition_Bits 0x00000001 + +/* ulFlags for CM_Open_Class_Key[_Ex] */ +#define CM_OPEN_CLASS_KEY_INSTALLER 0x00000000 +#define CM_OPEN_CLASS_KEY_INTERFACE 0x00000001 +#define CM_OPEN_CLASS_KEY_BITS 0x00000001 CONFIGRET WINAPI CM_Connect_MachineA( PCSTR, PHMACHINE ); @@ -71,6 +93,8 @@ CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW( PULONG, PCWSTR, ULONG ); CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA( PULONG, PCSTR, ULONG, HMACHINE ); CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW( PULONG, PCWSTR, ULONG, HMACHINE ); #define CM_Get_Device_ID_List_Size_Ex WINELIB_NAME_AW(CM_Get_Device_ID_List_Size_Ex) +CONFIGRET WINAPI CM_Get_Global_State( PULONG, ULONG ); +CONFIGRET WINAPI CM_Get_Global_State_Ex( PULONG, ULONG, HMACHINE ); CONFIGRET WINAPI CM_Get_Parent( PDEVINST, DEVINST, ULONG ); CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST, DEVINST, ULONG, HMACHINE ); CONFIGRET WINAPI CM_Get_Sibling( PDEVINST, DEVINST, ULONG ); @@ -85,4 +109,12 @@ CONFIGRET WINAPI CM_Locate_DevNode_ExA(PDEVINST, DEVINSTID_A, ULONG, HMACHINE); CONFIGRET WINAPI CM_Locate_DevNode_ExW(PDEVINST, DEVINSTID_W, ULONG, HMACHINE); #define CM_Locate_DevNode_Ex WINELIB_NAME_AW(CM_Locate_DevNode_Ex) +CONFIGRET WINAPI CM_Open_Class_KeyA(LPGUID, LPCSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG); +CONFIGRET WINAPI CM_Open_Class_KeyW(LPGUID, LPCWSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG); +#define CM_Open_Class_Key WINELIB_NAME_AW(CM_Open_Class_Key) +CONFIGRET WINAPI CM_Open_Class_Key_ExA(LPGUID, LPCSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG, HMACHINE); +CONFIGRET WINAPI CM_Open_Class_Key_ExW(LPGUID, LPCWSTR, REGSAM, REGDISPOSITION, PHKEY, ULONG, HMACHINE); +#define CM_Open_Class_Key_Ex WINELIB_NAME_AW(CM_Open_Class_Key_Ex) + + #endif /* _CFGMGR32_H_ */ diff --git a/reactos/lib/setupapi/cfgmgr.c b/reactos/lib/setupapi/cfgmgr.c index d386e4d22f1..13f9e21ca2a 100644 --- a/reactos/lib/setupapi/cfgmgr.c +++ b/reactos/lib/setupapi/cfgmgr.c @@ -32,6 +32,7 @@ #include "setupapi_private.h" #include "rpc.h" +#include "rpc_private.h" #include "pnp_c.h" @@ -41,9 +42,9 @@ WINE_DEFAULT_DEBUG_CHANNEL(setupapi); /* Registry key and value names */ static const WCHAR ControlClass[] = {'S','y','s','t','e','m','\\', - 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\', - 'C','o','n','t','r','o','l','\\', - 'C','l','a','s','s',0}; + 'C','u','r','r','e','n','t','C','o','n','t','r','o','l','S','e','t','\\', + 'C','o','n','t','r','o','l','\\', + 'C','l','a','s','s',0}; typedef struct _MACHINE_INFO @@ -137,17 +138,32 @@ CONFIGRET WINAPI CM_Enumerate_Classes( static CONFIGRET GetCmCodeFromErrorCode(DWORD ErrorCode) { - switch (ErrorCode) - { - case ERROR_SUCCESS: return CR_SUCCESS; - case ERROR_ACCESS_DENIED: return CR_ACCESS_DENIED; - case ERROR_INSUFFICIENT_BUFFER: return CR_BUFFER_SMALL; - case ERROR_INVALID_DATA: return CR_INVALID_DATA; - case ERROR_INVALID_PARAMETER: return CR_INVALID_DATA; - case ERROR_NO_MORE_ITEMS: return CR_NO_SUCH_VALUE; - case ERROR_NO_SYSTEM_RESOURCES: return CR_OUT_OF_MEMORY; - default: return CR_FAILURE; - } + switch (ErrorCode) + { + case ERROR_SUCCESS: + return CR_SUCCESS; + + case ERROR_ACCESS_DENIED: + return CR_ACCESS_DENIED; + + case ERROR_INSUFFICIENT_BUFFER: + return CR_BUFFER_SMALL; + + case ERROR_INVALID_DATA: + return CR_INVALID_DATA; + + case ERROR_INVALID_PARAMETER: + return CR_INVALID_DATA; + + case ERROR_NO_MORE_ITEMS: + return CR_NO_SUCH_VALUE; + + case ERROR_NO_SYSTEM_RESOURCES: + return CR_OUT_OF_MEMORY; + + default: + return CR_FAILURE; + } } @@ -194,7 +210,7 @@ CONFIGRET WINAPI CM_Enumerate_Classes_Ex( Buffer[37] = UNICODE_NULL; /* Convert the buffer to a GUID */ if (UuidFromStringW(&Buffer[1], ClassGuid) != RPC_S_OK) - return CR_FAILURE; + return CR_FAILURE; } return GetCmCodeFromErrorCode(rc); @@ -218,7 +234,7 @@ CONFIGRET WINAPI CM_Get_Child( CONFIGRET WINAPI CM_Get_Child_Ex( PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine) { - TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); + FIXME("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); return CR_SUCCESS; } @@ -229,9 +245,9 @@ CONFIGRET WINAPI CM_Get_Child_Ex( CONFIGRET WINAPI CM_Get_Device_ID_ListA( PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags ) { - FIXME("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags); - memset(Buffer,0,2); - return CR_SUCCESS; + TRACE("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags); + return CM_Get_Device_ID_List_ExA(pszFilter, Buffer, BufferLen, + ulFlags, NULL); } @@ -281,9 +297,8 @@ CONFIGRET WINAPI CM_Get_Device_ID_List_ExW( CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA( PULONG pulLen, PCSTR pszFilter, ULONG ulFlags) { - FIXME("%p %s %ld\n", pulLen, pszFilter, ulFlags); - *pulLen = 2; - return CR_SUCCESS; + TRACE("%p %s %ld\n", pulLen, pszFilter, ulFlags); + return CM_Get_Device_ID_List_Size_ExA(pulLen, pszFilter, ulFlags, NULL); } @@ -322,6 +337,51 @@ CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW( } +/*********************************************************************** + * CM_Get_Global_State [SETUPAPI.@] + */ +CONFIGRET WINAPI CM_Get_Global_State( + PULONG pulState, ULONG ulFlags) +{ + TRACE("%p %lx\n", pulState, ulFlags); + return CM_Get_Global_State_Ex(pulState, ulFlags, NULL); +} + + +/*********************************************************************** + * CM_Get_Global_State_Ex [SETUPAPI.@] + */ +CONFIGRET WINAPI CM_Get_Global_State_Ex( + PULONG pulState, ULONG ulFlags, HMACHINE hMachine) +{ + RPC_BINDING_HANDLE BindingHandle = NULL; + RPC_STATUS Status; + + TRACE("%p %lx %lx\n", pulState, ulFlags, hMachine); + + if (pulState == NULL) + return CR_INVALID_POINTER; + + if (ulFlags != 0) + return CR_INVALID_FLAG; + + if (hMachine != NULL) + { + BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle; + if (BindingHandle == NULL) + return CR_FAILURE; + } + else + { + Status = PnpGetLocalBindingHandle(&BindingHandle); + if (Status != RPC_S_OK) + return CR_FAILURE; + } + + return PNP_GetGlobalState(BindingHandle, pulState, ulFlags); +} + + /*********************************************************************** * CM_Get_Parent [SETUPAPI.@] */ @@ -339,7 +399,7 @@ CONFIGRET WINAPI CM_Get_Parent( CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine) { - TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); + FIXME("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); return CR_SUCCESS; } @@ -361,7 +421,7 @@ CONFIGRET WINAPI CM_Get_Sibling( CONFIGRET WINAPI CM_Get_Sibling_Ex( PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine) { - TRACE("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); + FIXME("%p %lx %lx %lx\n", pdnDevInst, dnDevInst, ulFlags, hMachine); return CR_SUCCESS; } @@ -385,7 +445,7 @@ WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine) RPC_STATUS Status; WORD Version = 0; - FIXME("%lx\n", hMachine); + TRACE("%lx\n", hMachine); if (hMachine != NULL) { @@ -413,8 +473,8 @@ WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine) CONFIGRET WINAPI CM_Locate_DevNodeA( PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags) { - FIXME("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags); - return CR_SUCCESS; + TRACE("%p %s %lu\n", pdnDevInst, pDeviceID, ulFlags); + return CM_Locate_DevNode_ExA(pdnDevInst, pDeviceID, ulFlags, NULL); } @@ -424,8 +484,8 @@ CONFIGRET WINAPI CM_Locate_DevNodeA( CONFIGRET WINAPI CM_Locate_DevNodeW( PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags) { - TRACE("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags); - return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL); + TRACE("%p %s %lu\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags); + return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL); } @@ -435,8 +495,23 @@ CONFIGRET WINAPI CM_Locate_DevNodeW( CONFIGRET WINAPI CM_Locate_DevNode_ExA( PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine) { - FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine); - return CR_SUCCESS; + DEVINSTID_W pDevIdW = NULL; + CONFIGRET rc = CR_SUCCESS; + + TRACE("%p %s %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine); + + if (pDeviceID != NULL) + { + if (CaptureAndConvertAnsiArg(pDeviceID, &pDevIdW)) + return CR_INVALID_DEVICE_ID; + } + + rc = CM_Locate_DevNode_ExW(pdnDevInst, pDevIdW, ulFlags, hMachine); + + if (pDevIdW != NULL) + MyFree(pDevIdW); + + return rc; } @@ -446,6 +521,6 @@ CONFIGRET WINAPI CM_Locate_DevNode_ExA( CONFIGRET WINAPI CM_Locate_DevNode_ExW( PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine) { - FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine); - return CR_SUCCESS; + FIXME("%p %s %lu %lx\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine); + return CR_SUCCESS; } diff --git a/reactos/lib/setupapi/rpc.c b/reactos/lib/setupapi/rpc.c index b29cdc4367e..fbd1afb38f6 100644 --- a/reactos/lib/setupapi/rpc.c +++ b/reactos/lib/setupapi/rpc.c @@ -1,82 +1,101 @@ -/* rpc.c */ +/* + * RPC support routines + * + * Copyright 2005 Eric Kohl + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ #include #include #include +#include "rpc_private.h" static RPC_BINDING_HANDLE LocalBindingHandle = NULL; RPC_STATUS -PnpBindRpc(LPWSTR pszMachine, +PnpBindRpc(LPCWSTR pszMachine, RPC_BINDING_HANDLE* BindingHandle) { - PWSTR pszStringBinding = NULL; - RPC_STATUS Status; + PWSTR pszStringBinding = NULL; + RPC_STATUS Status; + + Status = RpcStringBindingComposeW(NULL, + L"ncacn_np", + (LPWSTR)pszMachine, + L"\\pipe\\umpnpmgr", + NULL, + &pszStringBinding); + if (Status != RPC_S_OK) + return Status; + + Status = RpcBindingFromStringBindingW(pszStringBinding, + BindingHandle); + + RpcStringFreeW(&pszStringBinding); - Status = RpcStringBindingComposeW(NULL, - L"ncacn_np", - pszMachine, - L"\\pipe\\umpnpmgr", - NULL, - &pszStringBinding); - if (Status != RPC_S_OK) return Status; - - Status = RpcBindingFromStringBindingW(pszStringBinding, - BindingHandle); - - RpcStringFreeW(&pszStringBinding); - - return Status; } RPC_STATUS PnpUnbindRpc(RPC_BINDING_HANDLE *BindingHandle) { - if (BindingHandle != NULL) - { - RpcBindingFree(*BindingHandle); - *BindingHandle = NULL; - } + if (BindingHandle != NULL) + { + RpcBindingFree(*BindingHandle); + *BindingHandle = NULL; + } - return RPC_S_OK; + return RPC_S_OK; } RPC_STATUS PnpGetLocalBindingHandle(RPC_BINDING_HANDLE *BindingHandle) { - if (LocalBindingHandle != NULL) - { - BindingHandle = LocalBindingHandle; - return RPC_S_OK; - } + if (LocalBindingHandle != NULL) + { + BindingHandle = LocalBindingHandle; + return RPC_S_OK; + } - return PnpBindRpc(NULL, BindingHandle); + return PnpBindRpc(NULL, BindingHandle); } RPC_STATUS PnpUnbindLocalBindingHandle(VOID) { - return PnpUnbindRpc(&LocalBindingHandle); + return PnpUnbindRpc(&LocalBindingHandle); } void __RPC_FAR * __RPC_USER midl_user_allocate(size_t len) { - return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); + return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len); } void __RPC_USER midl_user_free(void __RPC_FAR * ptr) { - HeapFree(GetProcessHeap(), 0, ptr); + HeapFree(GetProcessHeap(), 0, ptr); } /* EOF */ diff --git a/reactos/lib/setupapi/rpc_private.h b/reactos/lib/setupapi/rpc_private.h new file mode 100644 index 00000000000..ed2e61796eb --- /dev/null +++ b/reactos/lib/setupapi/rpc_private.h @@ -0,0 +1,29 @@ +/* + * Copyright 2005 Eric Kohl + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef __RPC_PRIVATE_H +#define __RPC_PRIVATE_H + +RPC_STATUS PnpBindRpc(LPCWSTR pszMachine, + RPC_BINDING_HANDLE* BindingHandle); +RPC_STATUS PnpUnbindRpc(RPC_BINDING_HANDLE *BindingHandle); + +RPC_STATUS PnpGetLocalBindingHandle(RPC_BINDING_HANDLE *BindingHandle); +RPC_STATUS PnpUnbindLocalHandles(VOID); + +#endif /* __RPC_PRIVATE_H */ diff --git a/reactos/lib/setupapi/setupapi.spec b/reactos/lib/setupapi/setupapi.spec index 4fbb309faaf..de651c2bc37 100644 --- a/reactos/lib/setupapi/setupapi.spec +++ b/reactos/lib/setupapi/setupapi.spec @@ -99,8 +99,8 @@ @ stub CM_Get_Device_Interface_List_Size_ExW @ stub CM_Get_First_Log_Conf @ stub CM_Get_First_Log_Conf_Ex -@ stub CM_Get_Global_State -@ stub CM_Get_Global_State_Ex +@ stdcall CM_Get_Global_State(ptr long) +@ stdcall CM_Get_Global_State_Ex(ptr long long) @ stub CM_Get_HW_Prof_FlagsA @ stub CM_Get_HW_Prof_FlagsW @ stub CM_Get_HW_Prof_Flags_ExA diff --git a/reactos/services/umpnpmgr/umpnpmgr.c b/reactos/services/umpnpmgr/umpnpmgr.c index 489584ab03c..669888300cb 100644 --- a/reactos/services/umpnpmgr/umpnpmgr.c +++ b/reactos/services/umpnpmgr/umpnpmgr.c @@ -107,12 +107,22 @@ void __RPC_USER midl_user_free(void __RPC_FAR * ptr) } -//WORD PNP_GetVersion(RPC_BINDING_HANDLE BindingHandle) +//CONFIRET PNP_GetVersion(RPC_BINDING_HANDLE BindingHandle, +// WORD *Version) unsigned long PNP_GetVersion(handle_t BindingHandle, unsigned short *Version) { *Version = 0x0400; - return 0; + return 0; /* CR_SUCCESS */ +} + + +unsigned long PNP_GetGlobalState(handle_t BindingHandle, + unsigned long *State, + unsigned long Flags) +{ + *State = 5; + return 0; /* CR_SUCCESS */ } diff --git a/reactos/w32api/include/ddk/cfg.h b/reactos/w32api/include/ddk/cfg.h index 107bd4aae85..91a3d69dab6 100644 --- a/reactos/w32api/include/ddk/cfg.h +++ b/reactos/w32api/include/ddk/cfg.h @@ -31,7 +31,7 @@ extern "C" { #endif -#define CM_PROB_NOT_CONFIGURED 0x00000001 +#define CM_PROB_NOT_CONFIGURED 0x00000001 #define CM_PROB_DEVLOADER_FAILED 0x00000002 #define CM_PROB_OUT_OF_MEMORY 0x00000003 #define CM_PROB_ENTRY_IS_WRONG_TYPE 0x00000004 @@ -62,13 +62,13 @@ extern "C" { #define CM_PROB_HARDWARE_DISABLED 0x0000001D #define CM_PROB_CANT_SHARE_IRQ 0x0000001E #define CM_PROB_FAILED_ADD 0x0000001F -#define CM_PROB_DISABLED_SERVICE 0x00000020 -#define CM_PROB_TRANSLATION_FAILED 0x00000021 -#define CM_PROB_NO_SOFTCONFIG 0x00000022 -#define CM_PROB_BIOS_TABLE 0x00000023 -#define CM_PROB_IRQ_TRANSLATION_FAILED 0x00000024 -#define CM_PROB_FAILED_DRIVER_ENTRY 0x00000025 -#define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD 0x00000026 +#define CM_PROB_DISABLED_SERVICE 0x00000020 +#define CM_PROB_TRANSLATION_FAILED 0x00000021 +#define CM_PROB_NO_SOFTCONFIG 0x00000022 +#define CM_PROB_BIOS_TABLE 0x00000023 +#define CM_PROB_IRQ_TRANSLATION_FAILED 0x00000024 +#define CM_PROB_FAILED_DRIVER_ENTRY 0x00000025 +#define CM_PROB_DRIVER_FAILED_PRIOR_UNLOAD 0x00000026 #define CM_PROB_DRIVER_FAILED_LOAD 0x00000027 #define CM_PROB_DRIVER_SERVICE_KEY_INVALID 0x00000028 #define CM_PROB_LEGACY_SERVICE_NO_DEVICES 0x00000029 @@ -79,7 +79,7 @@ extern "C" { #define CM_PROB_SYSTEM_SHUTDOWN 0x0000002E #define CM_PROB_HELD_FOR_EJECT 0x0000002F #define CM_PROB_DRIVER_BLOCKED 0x00000030 -#define CM_PROB_REGISTRY_TOO_LARGE 0x00000031 +#define CM_PROB_REGISTRY_TOO_LARGE 0x00000031 #define LCPRI_FORCECONFIG 0x00000000 #define LCPRI_BOOTCONFIG 0x00000001 @@ -97,25 +97,25 @@ extern "C" { #define LCPRI_DISABLED 0x0000FFFF #define MAX_LCPRI 0x0000FFFF -#define DN_ROOT_ENUMERATED 0x00000001 /* Was enumerated by ROOT */ -#define DN_DRIVER_LOADED 0x00000002 /* Has Register_Device_Driver */ -#define DN_ENUM_LOADED 0x00000004 /* Has Register_Enumerator */ -#define DN_STARTED 0x00000008 /* Is currently configured */ -#define DN_MANUAL 0x00000010 /* Manually installed */ -#define DN_NEED_TO_ENUM 0x00000020 /* May need reenumeration */ -#define DN_NOT_FIRST_TIME 0x00000040 /* Has received a config */ -#define DN_HARDWARE_ENUM 0x00000080 /* Enum generates hardware ID */ -#define DN_LIAR 0x00000100 /* Lied about can reconfig once */ -#define DN_HAS_MARK 0x00000200 /* Not CM_Create_DevNode lately */ -#define DN_HAS_PROBLEM 0x00000400 /* Need device installer */ -#define DN_FILTERED 0x00000800 /* Is filtered */ -#define DN_MOVED 0x00001000 /* Has been moved */ -#define DN_DISABLEABLE 0x00002000 /* Can be rebalanced */ -#define DN_REMOVABLE 0x00004000 /* Can be removed */ -#define DN_PRIVATE_PROBLEM 0x00008000 /* Has a private problem */ -#define DN_MF_PARENT 0x00010000 /* Multi function parent */ -#define DN_MF_CHILD 0x00020000 /* Multi function child */ -#define DN_WILL_BE_REMOVED 0x00040000 /* Devnode is being removed */ +#define DN_ROOT_ENUMERATED 0x00000001 /* Was enumerated by ROOT */ +#define DN_DRIVER_LOADED 0x00000002 /* Has Register_Device_Driver */ +#define DN_ENUM_LOADED 0x00000004 /* Has Register_Enumerator */ +#define DN_STARTED 0x00000008 /* Is currently configured */ +#define DN_MANUAL 0x00000010 /* Manually installed */ +#define DN_NEED_TO_ENUM 0x00000020 /* May need reenumeration */ +#define DN_NOT_FIRST_TIME 0x00000040 /* Has received a config */ +#define DN_HARDWARE_ENUM 0x00000080 /* Enum generates hardware ID */ +#define DN_LIAR 0x00000100 /* Lied about can reconfig once */ +#define DN_HAS_MARK 0x00000200 /* Not CM_Create_DevNode lately */ +#define DN_HAS_PROBLEM 0x00000400 /* Need device installer */ +#define DN_FILTERED 0x00000800 /* Is filtered */ +#define DN_MOVED 0x00001000 /* Has been moved */ +#define DN_DISABLEABLE 0x00002000 /* Can be rebalanced */ +#define DN_REMOVABLE 0x00004000 /* Can be removed */ +#define DN_PRIVATE_PROBLEM 0x00008000 /* Has a private problem */ +#define DN_MF_PARENT 0x00010000 /* Multi function parent */ +#define DN_MF_CHILD 0x00020000 /* Multi function child */ +#define DN_WILL_BE_REMOVED 0x00040000 /* Devnode is being removed */ typedef enum _PNP_VETO_TYPE { PNP_VetoTypeUnknown, diff --git a/reactos/w32api/include/ddk/cfgmgr32.h b/reactos/w32api/include/ddk/cfgmgr32.h index 65d4269a112..e7f2172cc45 100644 --- a/reactos/w32api/include/ddk/cfgmgr32.h +++ b/reactos/w32api/include/ddk/cfgmgr32.h @@ -41,27 +41,27 @@ extern "C" { #include -#define CR_SUCCESS 0x00000000 +#define CR_SUCCESS 0x00000000 #define CR_DEFAULT 0x00000001 #define CR_OUT_OF_MEMORY 0x00000002 #define CR_INVALID_POINTER 0x00000003 #define CR_INVALID_FLAG 0x00000004 #define CR_INVALID_DEVNODE 0x00000005 -#define CR_INVALID_DEVINST CR_INVALID_DEVNODE +#define CR_INVALID_DEVINST CR_INVALID_DEVNODE #define CR_INVALID_RES_DES 0x00000006 #define CR_INVALID_LOG_CONF 0x00000007 #define CR_INVALID_ARBITRATOR 0x00000008 #define CR_INVALID_NODELIST 0x00000009 #define CR_DEVNODE_HAS_REQS 0x0000000A -#define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS +#define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS #define CR_INVALID_RESOURCEID 0x0000000B #define CR_DLVXD_NOT_FOUND 0x0000000C #define CR_NO_SUCH_DEVNODE 0x0000000D -#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE +#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE #define CR_NO_MORE_LOG_CONF 0x0000000E #define CR_NO_MORE_RES_DES 0x0000000F #define CR_ALREADY_SUCH_DEVNODE 0x00000010 -#define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE +#define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE #define CR_INVALID_RANGE_LIST 0x00000011 #define CR_INVALID_RANGE 0x00000012 #define CR_FAILURE 0x00000013 @@ -150,21 +150,21 @@ typedef ULONG REGDISPOSITION; typedef ULONG RESOURCEID; typedef RESOURCEID *PRESOURCEID; -#define CM_RESDES_WIDTH_DEFAULT 0x00000000 -#define CM_RESDES_WIDTH_32 0x00000001 -#define CM_RESDES_WIDTH_64 0x00000002 -#define CM_RESDES_WIDTH_BITS 0x00000003 +#define CM_RESDES_WIDTH_DEFAULT 0x00000000 +#define CM_RESDES_WIDTH_32 0x00000001 +#define CM_RESDES_WIDTH_64 0x00000002 +#define CM_RESDES_WIDTH_BITS 0x00000003 -#define MAX_CONFIG_VALUE 9999 -#define MAX_INSTANCE_VALUE 9999 +#define MAX_CONFIG_VALUE 9999 +#define MAX_INSTANCE_VALUE 9999 -#define MAX_DEVICE_ID_LEN 200 -#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN +#define MAX_DEVICE_ID_LEN 200 +#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN -#define MAX_CLASS_NAME_LEN 32 -#define MAX_GUID_STRING_LEN 39 -#define MAX_PROFILE_LEN 80 +#define MAX_CLASS_NAME_LEN 32 +#define MAX_GUID_STRING_LEN 39 +#define MAX_PROFILE_LEN 80 #define ResType_All 0x00000000 @@ -183,7 +183,7 @@ typedef RESOURCEID *PRESOURCEID; #define ResType_PcCardConfig 0x00008002 #define ResType_MfCardConfig 0x00008003 -#define CM_GETIDLIST_FILTER_NONE 0x00000000 +#define CM_GETIDLIST_FILTER_NONE 0x00000000 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004 @@ -193,9 +193,9 @@ typedef RESOURCEID *PRESOURCEID; #define CM_GETIDLIST_DONOTGENERATE 0x10000040 #define CM_GETIDLIST_FILTER_BITS 0x1000007F -#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000 -#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001 -#define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001 +#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000 +#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001 +#define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001 typedef struct BusNumber_Des_s {