nsi: Add a stub implementation of NsiEnumerateObjectsAllParameters().
[wine.git] / include / wine / nsi.h
blob648adac9931607ea3e5bd0d1e0458ae146a11b75
1 /*
2 * Copyright 2021 Huw Davies
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef __WINE_NSI_H
20 #define __WINE_NSI_H
22 /* Undocumented NSI NDIS tables */
23 #define NSI_NDIS_IFINFO_TABLE 0
24 #define NSI_NDIS_INDEX_LUID_TABLE 2
26 struct nsi_ndis_ifinfo_rw
28 GUID network_guid;
29 DWORD admin_status;
30 IF_COUNTED_STRING alias; /* .Length in bytes not including '\0' */
31 IF_PHYSICAL_ADDRESS phys_addr;
32 USHORT pad;
33 IF_COUNTED_STRING name2;
34 DWORD unk;
37 struct nsi_ndis_ifinfo_dynamic
39 DWORD oper_status;
40 struct
42 DWORD unk : 1;
43 DWORD not_media_conn : 1;
44 DWORD unk2 : 30;
45 } flags;
46 DWORD media_conn_state;
47 DWORD unk;
48 DWORD mtu;
49 ULONG64 xmit_speed;
50 ULONG64 rcv_speed;
51 ULONG64 in_errors;
52 ULONG64 in_discards;
53 ULONG64 out_errors;
54 ULONG64 out_discards;
55 ULONG64 unk2;
56 ULONG64 in_octets;
57 ULONG64 in_ucast_pkts;
58 ULONG64 in_mcast_pkts;
59 ULONG64 in_bcast_pkts;
60 ULONG64 out_octets;
61 ULONG64 out_ucast_pkts;
62 ULONG64 out_mcast_pkts;
63 ULONG64 out_bcast_pkts;
64 ULONG64 unk3[2];
65 ULONG64 in_ucast_octs;
66 ULONG64 in_mcast_octs;
67 ULONG64 in_bcast_octs;
68 ULONG64 out_ucast_octs;
69 ULONG64 out_mcast_octs;
70 ULONG64 out_bcast_octs;
71 ULONG64 unk4;
74 struct nsi_ndis_ifinfo_static
76 DWORD if_index;
77 IF_COUNTED_STRING descr;
78 DWORD type;
79 DWORD access_type;
80 DWORD unk;
81 DWORD conn_type;
82 GUID if_guid;
83 USHORT conn_present;
84 IF_PHYSICAL_ADDRESS perm_phys_addr;
85 struct
87 DWORD hw : 1;
88 DWORD filter : 1;
89 DWORD unk : 30;
90 } flags;
91 DWORD media_type;
92 DWORD phys_medium_type;
95 /* Undocumented Nsi api */
97 #define NSI_PARAM_TYPE_RW 0
98 #define NSI_PARAM_TYPE_DYNAMIC 1
99 #define NSI_PARAM_TYPE_STATIC 2
101 DWORD WINAPI NsiAllocateAndGetTable( DWORD unk, const NPI_MODULEID *module, DWORD table, void **key_data, DWORD key_size,
102 void **rw_data, DWORD rw_size, void **dynamic_data, DWORD dynamic_size,
103 void **static_data, DWORD static_size, DWORD *count, DWORD unk2 );
104 DWORD WINAPI NsiEnumerateObjectsAllParameters( DWORD unk, DWORD unk2, const NPI_MODULEID *module, DWORD table,
105 void *key_data, DWORD key_size, void *rw_data, DWORD rw_size,
106 void *dynamic_data, DWORD dynamic_size, void *static_data, DWORD static_size,
107 DWORD *count );
108 void WINAPI NsiFreeTable( void *key_data, void *rw_data, void *dynamic_data, void *static_data );
109 DWORD WINAPI NsiGetAllParameters( DWORD unk, const NPI_MODULEID *module, DWORD table, const void *key, DWORD key_size,
110 void *rw_data, DWORD rw_size, void *dynamic_data, DWORD dynamic_size,
111 void *static_data, DWORD static_size );
112 DWORD WINAPI NsiGetParameter( DWORD unk, const NPI_MODULEID *module, DWORD table, const void *key, DWORD key_size,
113 DWORD param_type, void *data, DWORD data_size, DWORD data_offset );
115 #endif /* __WINE_NSI_H */