981{
986 union _GENERIC_INFORMATION
987 {
994 } GenericInfo;
995
996 InfoLength =
sizeof(
ULONG);
997 InfoPtr = &GenericInfo;
998
999 switch (Oid)
1000 {
1004 break;
1005
1009 break;
1010
1013 {
1016 break;
1017 }
1018
1021 {
1023 break;
1024 }
1025
1027 {
1029 break;
1030 }
1031
1033 {
1035 break;
1036 }
1037
1039 {
1040
1042 break;
1043 }
1044
1046 {
1048 }
1049
1053 {
1055 break;
1056 }
1057
1059 {
1060 GenericInfo.Ulong = 0;
1064 break;
1065 }
1066
1068 {
1069 InfoLength =
sizeof(
USHORT);
1070 GenericInfo.Ushort = (NDIS_MINIPORT_MAJOR_VERSION << 8) | NDIS_MINIPORT_MINOR_VERSION;
1071 break;
1072 }
1073
1075 {
1076 static const CHAR VendorDesc[] =
"nVidia nForce Ethernet Controller";
1077 InfoPtr = (
PVOID)&VendorDesc;
1078 InfoLength = sizeof(VendorDesc);
1079 break;
1080 }
1081
1083 {
1085 break;
1086 }
1087
1089 {
1093
1098 break;
1099 }
1100
1102 {
1105 break;
1106 }
1107
1109 {
1110
1111 GenericInfo.Ulong = 1;
1112 break;
1113 }
1114
1116 {
1117
1118 GenericInfo.Ulong = 0x100;
1119 break;
1120 }
1121
1139 {
1141 {
1144 }
1145 else
1146 {
1148 }
1149
1150 *BytesNeeded =
sizeof(
ULONG64);
1151 if (InformationBufferLength <
sizeof(
ULONG))
1152 {
1155 }
1156 if (InformationBufferLength >=
sizeof(
ULONG64))
1157 {
1160 }
1161 else
1162 {
1165 }
1166
1168 }
1169
1171 {
1173 break;
1174 }
1175
1177 {
1180 break;
1181 }
1182
1184 {
1187 break;
1188 }
1189
1191 {
1194 break;
1195 }
1196
1198 {
1200 break;
1201 }
1202
1204 {
1206 break;
1207 }
1208
1210 {
1212 InformationBuffer,
1213 InformationBufferLength,
1216 }
1217
1219 {
1221 break;
1222 }
1223
1225 {
1227
1228 if (InformationBufferLength < InfoLength)
1229 {
1231 *BytesNeeded = InfoLength;
1233 }
1234
1236 *BytesNeeded = 0;
1238 }
1239
1241 {
1243 }
1244
1246 {
1247
1249 {
1251 break;
1252 }
1253
1254 GenericInfo.Ulong = Adapter->
VlanId;
1255 break;
1256 }
1257
1258 default:
1260 break;
1261 }
1262
1264 {
1265 if (InfoLength > InformationBufferLength)
1266 {
1268 *BytesNeeded = InfoLength;
1270 }
1271 else
1272 {
1275 *BytesNeeded = 0;
1276 }
1277 }
1278 else
1279 {
1281 *BytesNeeded = 0;
1282 }
1283
1285}
#define ETH_LENGTH_OF_ADDRESS
#define NDIS_STATUS_NOT_SUPPORTED
#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND
#define NDIS_STATUS_INVALID_OID
#define NDIS_STATUS_SUCCESS
#define NDIS_STATUS_BUFFER_TOO_SHORT
#define NDIS_MAC_OPTION_NO_LOOPBACK
#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA
#define NDIS_MAC_OPTION_8021P_PRIORITY
#define NdisMoveMemory(Destination, Source, Length)
enum _NDIS_MEDIUM NDIS_MEDIUM
#define OID_GEN_TRANSMIT_BLOCK_SIZE
#define OID_GEN_MAXIMUM_TOTAL_SIZE
#define OID_GEN_XMIT_ERROR
#define OID_GEN_VENDOR_DRIVER_VERSION
@ NdisPhysicalMedium802_3
#define OID_802_3_PERMANENT_ADDRESS
#define OID_GEN_LINK_SPEED
#define OID_GEN_VENDOR_ID
#define OID_802_3_RCV_OVERRUN
#define OID_GEN_CURRENT_PACKET_FILTER
@ NdisMediaStateConnected
@ NdisMediaStateDisconnected
#define OID_GEN_RCV_NO_BUFFER
#define OID_802_3_XMIT_HEARTBEAT_FAILURE
#define OID_GEN_PHYSICAL_MEDIUM
enum _NDIS_DEVICE_POWER_STATE NDIS_DEVICE_POWER_STATE
#define OID_802_3_XMIT_ONE_COLLISION
#define OID_802_3_XMIT_MORE_COLLISIONS
#define OID_802_3_XMIT_MAX_COLLISIONS
#define OID_GEN_RECEIVE_BUFFER_SPACE
#define OID_802_3_XMIT_TIMES_CRS_LOST
#define OID_802_3_MAXIMUM_LIST_SIZE
#define OID_GEN_DRIVER_VERSION
#define OID_802_3_XMIT_UNDERRUN
#define OID_802_3_XMIT_LATE_COLLISIONS
#define OID_802_3_CURRENT_ADDRESS
#define OID_802_3_MULTICAST_LIST
struct _NDIS_PNP_CAPABILITIES NDIS_PNP_CAPABILITIES
#define OID_GEN_DIRECTED_FRAMES_RCV
#define OID_PNP_ENABLE_WAKE_UP
#define OID_GEN_TRANSMIT_BUFFER_SPACE
#define OID_GEN_MEDIA_SUPPORTED
#define OID_GEN_MAXIMUM_FRAME_SIZE
#define OID_GEN_RCV_CRC_ERROR
#define NDIS_MAC_OPTION_8021Q_VLAN
#define OID_GEN_MEDIA_IN_USE
#define OID_GEN_MEDIA_CONNECT_STATUS
#define OID_GEN_MAXIMUM_LOOKAHEAD
#define OID_802_3_RCV_ERROR_ALIGNMENT
#define OID_PNP_QUERY_POWER
#define OID_GEN_RCV_ERROR
@ NdisHardwareStatusReady
#define OID_PNP_CAPABILITIES
#define OID_TCP_TASK_OFFLOAD
#define OID_GEN_CURRENT_LOOKAHEAD
#define OID_GEN_MAC_OPTIONS
#define OID_GEN_VENDOR_DESCRIPTION
#define OID_GEN_SUPPORTED_LIST
#define OID_802_3_XMIT_DEFERRED
#define OID_GEN_RECEIVE_BLOCK_SIZE
#define OID_GEN_MAXIMUM_SEND_PACKETS
#define OID_GEN_TRANSMIT_QUEUE_LENGTH
#define OID_GEN_HARDWARE_STATUS
enum _NDIS_HARDWARE_STATUS NDIS_HARDWARE_STATUS
#define DEV_HAS_STATISTICS_COUNTERS
static ULONG NvNetGetWakeUp(_In_ PNVNET_ADAPTER Adapter)
static VOID NvNetQuerySoftwareCounter(_In_ PNVNET_ADAPTER Adapter, _In_ NDIS_OID Oid, _Out_ PULONG64 Counter)
static VOID NvNetReadStatistics(_In_ PNVNET_ADAPTER Adapter)
static VOID NvNetQueryHwCounter(_In_ PNVNET_ADAPTER Adapter, _In_ NDIS_OID Oid, _Out_ PULONG64 Counter)
static NDIS_STATUS NvNetGetTcpTaskOffload(_In_ PNVNET_ADAPTER Adapter, _In_ PNDIS_TASK_OFFLOAD_HEADER TaskOffloadHeader, _In_ ULONG InformationBufferLength, _Out_ PULONG BytesWritten, _Out_ PULONG BytesNeeded)
static NDIS_STATUS NvNetFillPowerManagementCapabilities(_In_ PNVNET_ADAPTER Adapter, _Out_ PNDIS_PNP_CAPABILITIES Capabilities)
static ULONG NvNetGetLinkSpeed(_In_ PNVNET_ADAPTER Adapter)
static const NDIS_OID NvpSupportedOidList[]
#define NVNET_RECEIVE_DESCRIPTORS
#define NVNET_MULTICAST_LIST_SIZE
#define NVNET_TRANSMIT_BLOCKS
#define NV_PACKET_PRIORITY
struct _NVNET_ADAPTER * PNVNET_ADAPTER
UCHAR PermanentMacAddress[ETH_LENGTH_OF_ADDRESS]
struct _NVNET_ADAPTER::@1123 MulticastList[NVNET_MULTICAST_LIST_SIZE]
UCHAR CurrentMacAddress[ETH_LENGTH_OF_ADDRESS]
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_ WDF_DEVICE_POWER_STATE PowerState
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten