nsi: Add a stub implementation of NsiEnumerateObjectsAllParametersEx().

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Huw Davies 2021-06-28 08:35:48 +01:00 committed by Alexandre Julliard
parent 687650db1b
commit 2bde6ccddb
4 changed files with 67 additions and 1 deletions

View file

@ -43,8 +43,35 @@ DWORD WINAPI NsiEnumerateObjectsAllParameters( DWORD unk, DWORD unk2, const NPI_
void *dynamic_data, DWORD dynamic_size, void *static_data, DWORD static_size,
DWORD *count )
{
struct nsi_enumerate_all_ex params;
DWORD err;
FIXME( "%d %d %p %d %p %d %p %d %p %d %p %d %p: stub\n", unk, unk2, module, table, key_data, key_size,
rw_data, rw_size, dynamic_data, dynamic_size, static_data, static_size, count );
params.unknown[0] = 0;
params.unknown[1] = 0;
params.module = module;
params.table = table;
params.first_arg = unk;
params.second_arg = unk2;
params.key_data = key_data;
params.key_size = key_size;
params.rw_data = rw_data;
params.rw_size = rw_size;
params.dynamic_data = dynamic_data;
params.dynamic_size = dynamic_size;
params.static_data = static_data;
params.static_size = static_size;
params.count = *count;
err = NsiEnumerateObjectsAllParametersEx( &params );
*count = params.count;
return err;
}
DWORD WINAPI NsiEnumerateObjectsAllParametersEx( struct nsi_enumerate_all_ex *params )
{
return ERROR_CALL_NOT_IMPLEMENTED;
}

View file

@ -4,7 +4,7 @@
@ stub NsiDeregisterChangeNotification
@ stub NsiDeregisterChangeNotificationEx
@ stdcall NsiEnumerateObjectsAllParameters(long long ptr long ptr long ptr long ptr long ptr long ptr)
@ stub NsiEnumerateObjectsAllParametersEx
@ stdcall NsiEnumerateObjectsAllParametersEx(ptr)
@ stub NsiEnumerateObjectsAllPersistentParametersWithMask
@ stub NsiFreePersistentDataWithMaskTable
@ stdcall NsiFreeTable(ptr ptr ptr ptr)

View file

@ -40,6 +40,7 @@ static void test_nsi_api( void )
struct nsi_ndis_ifinfo_rw *rw_tbl, *rw, get_rw, *enum_rw_tbl, *enum_rw;
struct nsi_ndis_ifinfo_dynamic *dyn_tbl, *dyn, get_dyn, *enum_dyn_tbl, *enum_dyn;
struct nsi_ndis_ifinfo_static *stat_tbl, *stat, get_stat, *enum_stat_tbl, *enum_stat;
struct nsi_enumerate_all_ex enum_params;
DWORD err, count, i, rw_size, enum_count;
NET_LUID *luid_tbl, *enum_luid_tbl;
@ -159,6 +160,25 @@ todo_wine
ok( enum_luid_tbl[i].Value == luid_tbl[i].Value, "%d: mismatch\n", i );
}
memset( &enum_params, 0, sizeof(enum_params) );
enum_params.first_arg = 1;
enum_params.second_arg = 1;
enum_params.module = &NPI_MS_NDIS_MODULEID;
enum_params.table = NSI_NDIS_IFINFO_TABLE;
enum_params.key_data = enum_luid_tbl;
enum_params.key_size = sizeof(*enum_luid_tbl);
enum_params.rw_data = enum_rw_tbl;
enum_params.rw_size = rw_size;
enum_params.dynamic_data = enum_dyn_tbl;
enum_params.dynamic_size = sizeof(*enum_dyn_tbl);
enum_params.static_data = enum_stat_tbl;
enum_params.static_size = sizeof(*enum_stat_tbl);
enum_params.count = count;
err = NsiEnumerateObjectsAllParametersEx( &enum_params );
ok( !err, "got %d\n", err );
ok( enum_params.count == count, "mismatch\n" );
free( enum_luid_tbl );
free( enum_rw_tbl );
free( enum_dyn_tbl );

View file

@ -98,6 +98,24 @@ struct nsi_ndis_ifinfo_static
#define NSI_PARAM_TYPE_DYNAMIC 1
#define NSI_PARAM_TYPE_STATIC 2
struct nsi_enumerate_all_ex
{
void *unknown[2];
const NPI_MODULEID *module;
DWORD_PTR table;
DWORD first_arg;
DWORD second_arg;
void *key_data;
DWORD key_size;
void *rw_data;
DWORD rw_size;
void *dynamic_data;
DWORD dynamic_size;
void *static_data;
DWORD static_size;
DWORD_PTR count;
};
DWORD WINAPI NsiAllocateAndGetTable( DWORD unk, const NPI_MODULEID *module, DWORD table, void **key_data, DWORD key_size,
void **rw_data, DWORD rw_size, void **dynamic_data, DWORD dynamic_size,
void **static_data, DWORD static_size, DWORD *count, DWORD unk2 );
@ -105,6 +123,7 @@ DWORD WINAPI NsiEnumerateObjectsAllParameters( DWORD unk, DWORD unk2, const NPI_
void *key_data, DWORD key_size, void *rw_data, DWORD rw_size,
void *dynamic_data, DWORD dynamic_size, void *static_data, DWORD static_size,
DWORD *count );
DWORD WINAPI NsiEnumerateObjectsAllParametersEx( struct nsi_enumerate_all_ex *params );
void WINAPI NsiFreeTable( void *key_data, void *rw_data, void *dynamic_data, void *static_data );
DWORD WINAPI NsiGetAllParameters( DWORD unk, const NPI_MODULEID *module, DWORD table, const void *key, DWORD key_size,
void *rw_data, DWORD rw_size, void *dynamic_data, DWORD dynamic_size,