215{
220 union _GENERIC_INFORMATION
221 {
228 } GenericInfo;
229
230 InfoLength =
sizeof(
ULONG);
231 InfoPtr = &GenericInfo;
232
233 switch (Oid)
234 {
238 break;
239
242 break;
243
247 break;
248
251 break;
252
255 {
258 break;
259 }
260
262 {
263 ULONG InterruptStatus;
264
265
267
268
269 if (InterruptStatus != 0xFFFFFFFF)
271 else
273
275 break;
276 }
277
282 break;
283
286 break;
287
290 break;
291
294 break;
295
298 break;
299
302 break;
303
306 break;
307
309 GenericInfo.Ulong = 0;
313 break;
314
316 {
317 static const CHAR VendorDesc[] =
"DC21x4 compatible Ethernet Adapter";
318 InfoPtr = (
PVOID)&VendorDesc;
319 InfoLength = sizeof(VendorDesc);
320 break;
321 }
322
324
325 GenericInfo.Ulong = 0x100;
326 break;
327
329 {
330 InfoLength =
sizeof(
USHORT);
331 GenericInfo.Ushort = (NDIS_MINIPORT_MAJOR_VERSION << 8) | NDIS_MINIPORT_MINOR_VERSION;
332 break;
333 }
334
337 break;
338
343 break;
344
348 break;
349
353 break;
354
358 break;
359
379 {
381
382 *BytesNeeded =
sizeof(
ULONG64);
383 if (InformationBufferLength <
sizeof(
ULONG))
384 {
387 }
388 if (InformationBufferLength >=
sizeof(
ULONG64))
389 {
392 }
393 else
394 {
397 }
398
400 }
401
404 break;
405
407 {
409
411
412 if (InformationBufferLength < InfoLength)
413 {
415 *BytesNeeded = InfoLength;
417 }
418
421
423 *BytesNeeded = 0;
424
429
431 }
432
434 {
437
439 }
440
442 {
445
449 break;
450 }
451
452 default:
454 break;
455 }
456
458 {
459 if (InfoLength > InformationBufferLength)
460 {
462 *BytesNeeded = InfoLength;
464 }
465 else
466 {
469 *BytesNeeded = 0;
470 }
471 }
472 else
473 {
475 *BytesNeeded = 0;
476 }
477
479}
static const NDIS_OID DcpSupportedOidList[]
static ULONG DcGetLinkSpeed(_In_ PDC21X4_ADAPTER Adapter)
static VOID DcQueryStatisticCounter(_In_ PDC21X4_ADAPTER Adapter, _In_ NDIS_OID Oid, _Out_ PULONG64 Counter)
#define DC_MAXIMUM_FRAME_SIZE
#define DC_HAS_POWER_MANAGEMENT
struct _DC21X4_ADAPTER * PDC21X4_ADAPTER
FORCEINLINE ULONG DC_READ(_In_ PDC21X4_ADAPTER Adapter, _In_ DC_CSR Register)
#define DC_TRANSMIT_BLOCKS
#define DC_TRANSMIT_BLOCK_SIZE
#define DC_RECEIVE_BLOCK_SIZE
#define DC_ETHERNET_HEADER_SIZE
#define ETH_LENGTH_OF_ADDRESS
_Must_inspect_result_ typedef _Out_ PHIDP_CAPS Capabilities
#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 NdisMoveMemory(Destination, Source, Length)
#define NDIS_PNP_WAKE_UP_MAGIC_PACKET
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
#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
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
#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_BROADCAST_FRAMES_RCV
#define OID_GEN_MAXIMUM_FRAME_SIZE
#define OID_GEN_RCV_CRC_ERROR
#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 NDIS_PNP_WAKE_UP_LINK_CHANGE
#define OID_GEN_RCV_ERROR
@ NdisHardwareStatusNotReady
@ NdisHardwareStatusReady
#define OID_PNP_CAPABILITIES
#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
#define OID_GEN_MULTICAST_FRAMES_RCV
#define NDIS_PNP_WAKE_UP_PATTERN_MATCH
enum _NDIS_HARDWARE_STATUS NDIS_HARDWARE_STATUS
ULONG MulticastMaxEntries
UCHAR CurrentMacAddress[ETH_LENGTH_OF_ADDRESS]
UCHAR PermanentMacAddress[ETH_LENGTH_OF_ADDRESS]
struct _DC21X4_ADAPTER::@993 MulticastList[DC_MULTICAST_LIST_SIZE]
_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