ntdll: Add stub for RtlGetDeviceFamilyInfoEnum.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56259
This commit is contained in:
Louis Lenders 2024-01-30 10:28:47 +01:00 committed by Alexandre Julliard
parent e3431a02e1
commit a24039ad09
4 changed files with 94 additions and 0 deletions

View file

@ -711,6 +711,7 @@
@ stdcall RtlFreeThreadActivationContextStack()
@ stdcall RtlFreeUnicodeString(ptr)
@ stdcall RtlFreeUserStack(ptr)
@ stdcall RtlGetDeviceFamilyInfoEnum(ptr ptr ptr)
@ stdcall RtlGUIDFromString(ptr ptr)
@ stub RtlGenerate8dot3Name
@ stdcall RtlGetAce(ptr long ptr)

View file

@ -2193,3 +2193,15 @@ char WINAPI RtlQueryProcessPlaceholderCompatibilityMode(void)
FIXME("stub\n");
return PHCM_APPLICATION_DEFAULT;
}
/*********************************************************************
* RtlGetDeviceFamilyInfoEnum [NTDLL.@]
*/
void WINAPI RtlGetDeviceFamilyInfoEnum(ULONGLONG *version, DWORD *family, DWORD *form)
{
FIXME("%p %p %p: stub\n", version, family, form);
if (version) *version = 0;
if (family) *family = DEVICEFAMILYINFOENUM_DESKTOP;
if (form) *form = DEVICEFAMILYDEVICEFORM_UNKNOWN;
}

View file

@ -99,6 +99,7 @@ static void * (WINAPI *pRtlFindExportedRoutineByName)(HMODULE,const char *);
static NTSTATUS (WINAPI *pLdrEnumerateLoadedModules)(void *, void *, void *);
static NTSTATUS (WINAPI *pLdrRegisterDllNotification)(ULONG, PLDR_DLL_NOTIFICATION_FUNCTION, void *, void **);
static NTSTATUS (WINAPI *pLdrUnregisterDllNotification)(void *);
static VOID (WINAPI *pRtlGetDeviceFamilyInfoEnum)(ULONGLONG *,DWORD *,DWORD *);
static HMODULE hkernel32 = 0;
static BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL);
@ -142,6 +143,7 @@ static void InitFunctionPtrs(void)
pLdrEnumerateLoadedModules = (void *)GetProcAddress(hntdll, "LdrEnumerateLoadedModules");
pLdrRegisterDllNotification = (void *)GetProcAddress(hntdll, "LdrRegisterDllNotification");
pLdrUnregisterDllNotification = (void *)GetProcAddress(hntdll, "LdrUnregisterDllNotification");
pRtlGetDeviceFamilyInfoEnum = (void *)GetProcAddress(hntdll, "RtlGetDeviceFamilyInfoEnum");
}
hkernel32 = LoadLibraryA("kernel32.dll");
ok(hkernel32 != 0, "LoadLibrary failed\n");
@ -3754,6 +3756,27 @@ static void test_RtlFindExportedRoutineByName(void)
ok( proc == NULL, "Shouldn't find forwarded function\n" );
}
static void test_RtlGetDeviceFamilyInfoEnum(void)
{
ULONGLONG version;
DWORD family, form;
if (!pRtlGetDeviceFamilyInfoEnum)
{
win_skip( "RtlGetDeviceFamilyInfoEnum is not present\n" );
return;
}
version = 0x1234567;
family = 1234567;
form = 1234567;
pRtlGetDeviceFamilyInfoEnum(&version, &family, &form);
ok( version != 0x1234567, "got unexpected unchanged value 0x1234567\n" );
ok( family <= DEVICEFAMILYINFOENUM_MAX, "got unexpected %lu\n", family );
ok( form <= DEVICEFAMILYDEVICEFORM_MAX, "got unexpected %lu\n", form );
trace( "UAP version is %#I64x, device family is %lu, form factor is %lu\n", version, family, form );
}
START_TEST(rtl)
{
InitFunctionPtrs();
@ -3802,4 +3825,5 @@ START_TEST(rtl)
test_RtlInitializeSid();
test_RtlValidSecurityDescriptor();
test_RtlFindExportedRoutineByName();
test_RtlGetDeviceFamilyInfoEnum();
}

View file

@ -5915,6 +5915,63 @@ typedef struct _TAPE_GET_MEDIA_PARAMETERS {
)
/* ------------------------------ end registry ------------------------------ */
#define DEVICEFAMILYINFOENUM_UAP 0x00
#define DEVICEFAMILYINFOENUM_WINDOWS_8X 0x01
#define DEVICEFAMILYINFOENUM_WINDOWS_PHONE_8X 0x02
#define DEVICEFAMILYINFOENUM_DESKTOP 0x03
#define DEVICEFAMILYINFOENUM_MOBILE 0x04
#define DEVICEFAMILYINFOENUM_XBOX 0x05
#define DEVICEFAMILYINFOENUM_TEAM 0x06
#define DEVICEFAMILYINFOENUM_IOT 0x07
#define DEVICEFAMILYINFOENUM_IOT_HEADLESS 0x08
#define DEVICEFAMILYINFOENUM_SERVER 0x09
#define DEVICEFAMILYINFOENUM_HOLOGRAPHIC 0x0A
#define DEVICEFAMILYINFOENUM_XBOXSRA 0x0B
#define DEVICEFAMILYINFOENUM_XBOXERA 0x0C
#define DEVICEFAMILYINFOENUM_SERVER_NANO 0x0D
#define DEVICEFAMILYINFOENUM_8828080 0x0E
#define DEVICEFAMILYINFOENUM_7067329 0x0F
#define DEVICEFAMILYINFOENUM_WINDOWS_CORE 0x10
#define DEVICEFAMILYINFOENUM_WINDOWS_CORE_HEADLESS 0x11
#define DEVICEFAMILYINFOENUM_MAX 0x11
#define DEVICEFAMILYDEVICEFORM_UNKNOWN 0x00
#define DEVICEFAMILYDEVICEFORM_PHONE 0x01
#define DEVICEFAMILYDEVICEFORM_TABLET 0x02
#define DEVICEFAMILYDEVICEFORM_DESKTOP 0x03
#define DEVICEFAMILYDEVICEFORM_NOTEBOOK 0x04
#define DEVICEFAMILYDEVICEFORM_CONVERTIBLE 0x05
#define DEVICEFAMILYDEVICEFORM_DETACHABLE 0x06
#define DEVICEFAMILYDEVICEFORM_ALLINONE 0x07
#define DEVICEFAMILYDEVICEFORM_STICKPC 0x08
#define DEVICEFAMILYDEVICEFORM_PUCK 0x09
#define DEVICEFAMILYDEVICEFORM_LARGESCREEN 0x0A
#define DEVICEFAMILYDEVICEFORM_HMD 0x0B
#define DEVICEFAMILYDEVICEFORM_INDUSTRY_HANDHELD 0x0C
#define DEVICEFAMILYDEVICEFORM_INDUSTRY_TABLET 0x0D
#define DEVICEFAMILYDEVICEFORM_BANKING 0x0E
#define DEVICEFAMILYDEVICEFORM_BUILDING_AUTOMATION 0x0F
#define DEVICEFAMILYDEVICEFORM_DIGITAL_SIGNAGE 0x10
#define DEVICEFAMILYDEVICEFORM_GAMING 0x11
#define DEVICEFAMILYDEVICEFORM_HOME_AUTOMATION 0x12
#define DEVICEFAMILYDEVICEFORM_INDUSTRIAL_AUTOMATION 0x13
#define DEVICEFAMILYDEVICEFORM_KIOSK 0x14
#define DEVICEFAMILYDEVICEFORM_MAKER_BOARD 0x15
#define DEVICEFAMILYDEVICEFORM_MEDICAL 0x16
#define DEVICEFAMILYDEVICEFORM_NETWORKING 0x17
#define DEVICEFAMILYDEVICEFORM_POINT_OF_SERVICE 0x18
#define DEVICEFAMILYDEVICEFORM_PRINTING 0x19
#define DEVICEFAMILYDEVICEFORM_THIN_CLIENT 0x1A
#define DEVICEFAMILYDEVICEFORM_TOY 0x1B
#define DEVICEFAMILYDEVICEFORM_VENDING 0x1C
#define DEVICEFAMILYDEVICEFORM_INDUSTRY_OTHER 0x1D
#define DEVICEFAMILYDEVICEFORM_XBOX_ONE 0x1E
#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_S 0x1F
#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_X 0x20
#define DEVICEFAMILYDEVICEFORM_XBOX_ONE_X_DEVKIT 0x21
#define DEVICEFAMILYDEVICEFORM_MAX 0x21
NTSYSAPI void WINAPI RtlGetDeviceFamilyInfoEnum(ULONGLONG*,DWORD*,DWORD*);
#define EVENTLOG_SUCCESS 0x0000
#define EVENTLOG_ERROR_TYPE 0x0001