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
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
30 IF_COUNTED_STRING alias
; /* .Length in bytes not including '\0' */
31 IF_PHYSICAL_ADDRESS phys_addr
;
33 IF_COUNTED_STRING name2
;
37 struct nsi_ndis_ifinfo_dynamic
43 DWORD not_media_conn
: 1;
46 DWORD media_conn_state
;
57 ULONG64 in_ucast_pkts
;
58 ULONG64 in_mcast_pkts
;
59 ULONG64 in_bcast_pkts
;
61 ULONG64 out_ucast_pkts
;
62 ULONG64 out_mcast_pkts
;
63 ULONG64 out_bcast_pkts
;
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
;
74 struct nsi_ndis_ifinfo_static
77 IF_COUNTED_STRING descr
;
84 IF_PHYSICAL_ADDRESS perm_phys_addr
;
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
,
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 */