mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 04:20:46 +00:00
- Implement CM_Get_Global_State/CM_Get_Global_State_Ex.
- All RPC-Calls to umpnpmgr return CONFIGRET. svn path=/trunk/; revision=16525
This commit is contained in:
parent
de63015392
commit
a5b363cd94
9 changed files with 300 additions and 129 deletions
|
@ -1,8 +1,9 @@
|
||||||
/*
|
/*
|
||||||
* Plug and Play Manager interface definition
|
* Plug and Play Manager RPC interface definition
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define WORD unsigned short
|
#define WORD unsigned short
|
||||||
|
#define DWORD unsigned long
|
||||||
#define CONFIGRET unsigned long
|
#define CONFIGRET unsigned long
|
||||||
|
|
||||||
[
|
[
|
||||||
|
@ -13,9 +14,14 @@
|
||||||
]
|
]
|
||||||
interface pnp
|
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,
|
CONFIGRET PNP_GetVersion(handle_t BindingHandle,
|
||||||
[out] WORD *Version);
|
[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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ typedef HANDLE HMACHINE;
|
||||||
typedef HMACHINE *PHMACHINE;
|
typedef HMACHINE *PHMACHINE;
|
||||||
typedef DWORD DEVINST;
|
typedef DWORD DEVINST;
|
||||||
typedef DEVINST *PDEVINST;
|
typedef DEVINST *PDEVINST;
|
||||||
|
typedef ULONG REGDISPOSITION;
|
||||||
|
|
||||||
typedef CHAR *DEVINSTID_A;
|
typedef CHAR *DEVINSTID_A;
|
||||||
typedef WCHAR *DEVINSTID_W;
|
typedef WCHAR *DEVINSTID_W;
|
||||||
|
@ -38,16 +39,37 @@ DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID)
|
||||||
|
|
||||||
#define CR_SUCCESS 0x00000000
|
#define CR_SUCCESS 0x00000000
|
||||||
#define CR_OUT_OF_MEMORY 0x00000002
|
#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_FAILURE 0x00000013
|
||||||
#define CR_BUFFER_SMALL 0x0000001A
|
#define CR_BUFFER_SMALL 0x0000001A
|
||||||
|
#define CR_REGISTRY_ERROR 0x0000001D
|
||||||
|
#define CR_INVALID_DEVICE_ID 0x0000001E
|
||||||
#define CR_INVALID_DATA 0x0000001F
|
#define CR_INVALID_DATA 0x0000001F
|
||||||
#define CR_NO_SUCH_VALUE 0x00000025
|
#define CR_NO_SUCH_VALUE 0x00000025
|
||||||
|
#define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
|
||||||
#define CR_INVALID_MACHINENAME 0x0000002F
|
#define CR_INVALID_MACHINENAME 0x0000002F
|
||||||
#define CR_ACCESS_DENIED 0x00000033
|
#define CR_ACCESS_DENIED 0x00000033
|
||||||
|
|
||||||
#define MAX_CLASS_NAME_LEN 32
|
#define MAX_CLASS_NAME_LEN 32
|
||||||
#define MAX_GUID_STRING_LEN 39
|
#define MAX_GUID_STRING_LEN 39
|
||||||
#define MAX_PROFILE_LEN 80
|
#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 );
|
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_ExA( PULONG, PCSTR, ULONG, HMACHINE );
|
||||||
CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW( PULONG, PCWSTR, 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)
|
#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( PDEVINST, DEVINST, ULONG );
|
||||||
CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
|
CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
|
||||||
CONFIGRET WINAPI CM_Get_Sibling( PDEVINST, DEVINST, ULONG );
|
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);
|
CONFIGRET WINAPI CM_Locate_DevNode_ExW(PDEVINST, DEVINSTID_W, ULONG, HMACHINE);
|
||||||
#define CM_Locate_DevNode_Ex WINELIB_NAME_AW(CM_Locate_DevNode_Ex)
|
#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_ */
|
#endif /* _CFGMGR32_H_ */
|
||||||
|
|
|
@ -32,6 +32,7 @@
|
||||||
#include "setupapi_private.h"
|
#include "setupapi_private.h"
|
||||||
|
|
||||||
#include "rpc.h"
|
#include "rpc.h"
|
||||||
|
#include "rpc_private.h"
|
||||||
|
|
||||||
#include "pnp_c.h"
|
#include "pnp_c.h"
|
||||||
|
|
||||||
|
@ -139,14 +140,29 @@ static CONFIGRET GetCmCodeFromErrorCode(DWORD ErrorCode)
|
||||||
{
|
{
|
||||||
switch (ErrorCode)
|
switch (ErrorCode)
|
||||||
{
|
{
|
||||||
case ERROR_SUCCESS: return CR_SUCCESS;
|
case ERROR_SUCCESS:
|
||||||
case ERROR_ACCESS_DENIED: return CR_ACCESS_DENIED;
|
return CR_SUCCESS;
|
||||||
case ERROR_INSUFFICIENT_BUFFER: return CR_BUFFER_SMALL;
|
|
||||||
case ERROR_INVALID_DATA: return CR_INVALID_DATA;
|
case ERROR_ACCESS_DENIED:
|
||||||
case ERROR_INVALID_PARAMETER: return CR_INVALID_DATA;
|
return CR_ACCESS_DENIED;
|
||||||
case ERROR_NO_MORE_ITEMS: return CR_NO_SUCH_VALUE;
|
|
||||||
case ERROR_NO_SYSTEM_RESOURCES: return CR_OUT_OF_MEMORY;
|
case ERROR_INSUFFICIENT_BUFFER:
|
||||||
default: return CR_FAILURE;
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,7 +234,7 @@ CONFIGRET WINAPI CM_Get_Child(
|
||||||
CONFIGRET WINAPI CM_Get_Child_Ex(
|
CONFIGRET WINAPI CM_Get_Child_Ex(
|
||||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
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;
|
return CR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,9 +245,9 @@ CONFIGRET WINAPI CM_Get_Child_Ex(
|
||||||
CONFIGRET WINAPI CM_Get_Device_ID_ListA(
|
CONFIGRET WINAPI CM_Get_Device_ID_ListA(
|
||||||
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
PCSTR pszFilter, PCHAR Buffer, ULONG BufferLen, ULONG ulFlags )
|
||||||
{
|
{
|
||||||
FIXME("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
TRACE("%p %p %ld %ld\n", pszFilter, Buffer, BufferLen, ulFlags);
|
||||||
memset(Buffer,0,2);
|
return CM_Get_Device_ID_List_ExA(pszFilter, Buffer, BufferLen,
|
||||||
return CR_SUCCESS;
|
ulFlags, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -281,9 +297,8 @@ CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(
|
||||||
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(
|
CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(
|
||||||
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags)
|
PULONG pulLen, PCSTR pszFilter, ULONG ulFlags)
|
||||||
{
|
{
|
||||||
FIXME("%p %s %ld\n", pulLen, pszFilter, ulFlags);
|
TRACE("%p %s %ld\n", pulLen, pszFilter, ulFlags);
|
||||||
*pulLen = 2;
|
return CM_Get_Device_ID_List_Size_ExA(pulLen, pszFilter, ulFlags, NULL);
|
||||||
return CR_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -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.@]
|
* CM_Get_Parent [SETUPAPI.@]
|
||||||
*/
|
*/
|
||||||
|
@ -339,7 +399,7 @@ CONFIGRET WINAPI CM_Get_Parent(
|
||||||
CONFIGRET WINAPI CM_Get_Parent_Ex(
|
CONFIGRET WINAPI CM_Get_Parent_Ex(
|
||||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
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;
|
return CR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -361,7 +421,7 @@ CONFIGRET WINAPI CM_Get_Sibling(
|
||||||
CONFIGRET WINAPI CM_Get_Sibling_Ex(
|
CONFIGRET WINAPI CM_Get_Sibling_Ex(
|
||||||
PDEVINST pdnDevInst, DEVINST dnDevInst, ULONG ulFlags, HMACHINE hMachine)
|
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;
|
return CR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -385,7 +445,7 @@ WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine)
|
||||||
RPC_STATUS Status;
|
RPC_STATUS Status;
|
||||||
WORD Version = 0;
|
WORD Version = 0;
|
||||||
|
|
||||||
FIXME("%lx\n", hMachine);
|
TRACE("%lx\n", hMachine);
|
||||||
|
|
||||||
if (hMachine != NULL)
|
if (hMachine != NULL)
|
||||||
{
|
{
|
||||||
|
@ -413,8 +473,8 @@ WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine)
|
||||||
CONFIGRET WINAPI CM_Locate_DevNodeA(
|
CONFIGRET WINAPI CM_Locate_DevNodeA(
|
||||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
|
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags)
|
||||||
{
|
{
|
||||||
FIXME("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
TRACE("%p %s %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
||||||
return CR_SUCCESS;
|
return CM_Locate_DevNode_ExA(pdnDevInst, pDeviceID, ulFlags, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -424,7 +484,7 @@ CONFIGRET WINAPI CM_Locate_DevNodeA(
|
||||||
CONFIGRET WINAPI CM_Locate_DevNodeW(
|
CONFIGRET WINAPI CM_Locate_DevNodeW(
|
||||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
|
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags)
|
||||||
{
|
{
|
||||||
TRACE("%p %p %lu\n", pdnDevInst, pDeviceID, ulFlags);
|
TRACE("%p %s %lu\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags);
|
||||||
return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
|
return CM_Locate_DevNode_ExW(pdnDevInst, pDeviceID, ulFlags, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -435,8 +495,23 @@ CONFIGRET WINAPI CM_Locate_DevNodeW(
|
||||||
CONFIGRET WINAPI CM_Locate_DevNode_ExA(
|
CONFIGRET WINAPI CM_Locate_DevNode_ExA(
|
||||||
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
PDEVINST pdnDevInst, DEVINSTID_A pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||||
{
|
{
|
||||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
DEVINSTID_W pDevIdW = NULL;
|
||||||
return CR_SUCCESS;
|
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(
|
CONFIGRET WINAPI CM_Locate_DevNode_ExW(
|
||||||
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
PDEVINST pdnDevInst, DEVINSTID_W pDeviceID, ULONG ulFlags, HMACHINE hMachine)
|
||||||
{
|
{
|
||||||
FIXME("%p %p %lu %lx\n", pdnDevInst, pDeviceID, ulFlags, hMachine);
|
FIXME("%p %s %lu %lx\n", pdnDevInst, debugstr_w(pDeviceID), ulFlags, hMachine);
|
||||||
return CR_SUCCESS;
|
return CR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,34 @@
|
||||||
/* 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 <windows.h>
|
#include <windows.h>
|
||||||
#include <rpc.h>
|
#include <rpc.h>
|
||||||
#include <rpcdce.h>
|
#include <rpcdce.h>
|
||||||
|
#include "rpc_private.h"
|
||||||
|
|
||||||
|
|
||||||
static RPC_BINDING_HANDLE LocalBindingHandle = NULL;
|
static RPC_BINDING_HANDLE LocalBindingHandle = NULL;
|
||||||
|
|
||||||
|
|
||||||
RPC_STATUS
|
RPC_STATUS
|
||||||
PnpBindRpc(LPWSTR pszMachine,
|
PnpBindRpc(LPCWSTR pszMachine,
|
||||||
RPC_BINDING_HANDLE* BindingHandle)
|
RPC_BINDING_HANDLE* BindingHandle)
|
||||||
{
|
{
|
||||||
PWSTR pszStringBinding = NULL;
|
PWSTR pszStringBinding = NULL;
|
||||||
|
@ -17,7 +36,7 @@ PnpBindRpc(LPWSTR pszMachine,
|
||||||
|
|
||||||
Status = RpcStringBindingComposeW(NULL,
|
Status = RpcStringBindingComposeW(NULL,
|
||||||
L"ncacn_np",
|
L"ncacn_np",
|
||||||
pszMachine,
|
(LPWSTR)pszMachine,
|
||||||
L"\\pipe\\umpnpmgr",
|
L"\\pipe\\umpnpmgr",
|
||||||
NULL,
|
NULL,
|
||||||
&pszStringBinding);
|
&pszStringBinding);
|
||||||
|
|
29
reactos/lib/setupapi/rpc_private.h
Normal file
29
reactos/lib/setupapi/rpc_private.h
Normal file
|
@ -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 */
|
|
@ -99,8 +99,8 @@
|
||||||
@ stub CM_Get_Device_Interface_List_Size_ExW
|
@ stub CM_Get_Device_Interface_List_Size_ExW
|
||||||
@ stub CM_Get_First_Log_Conf
|
@ stub CM_Get_First_Log_Conf
|
||||||
@ stub CM_Get_First_Log_Conf_Ex
|
@ stub CM_Get_First_Log_Conf_Ex
|
||||||
@ stub CM_Get_Global_State
|
@ stdcall CM_Get_Global_State(ptr long)
|
||||||
@ stub CM_Get_Global_State_Ex
|
@ stdcall CM_Get_Global_State_Ex(ptr long long)
|
||||||
@ stub CM_Get_HW_Prof_FlagsA
|
@ stub CM_Get_HW_Prof_FlagsA
|
||||||
@ stub CM_Get_HW_Prof_FlagsW
|
@ stub CM_Get_HW_Prof_FlagsW
|
||||||
@ stub CM_Get_HW_Prof_Flags_ExA
|
@ stub CM_Get_HW_Prof_Flags_ExA
|
||||||
|
|
|
@ -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 long PNP_GetVersion(handle_t BindingHandle,
|
||||||
unsigned short *Version)
|
unsigned short *Version)
|
||||||
{
|
{
|
||||||
*Version = 0x0400;
|
*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 */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue