216{
221 union _GENERIC_INFORMATION
222 {
229 } GenericInfo;
230
231 InfoLength =
sizeof(
ULONG);
232 InfoPtr = &GenericInfo;
233
234 switch (Oid)
235 {
239 break;
240
243 break;
244
248 break;
249
252 break;
253
256 {
259 break;
260 }
261
263 {
264 ULONG InterruptStatus;
265
266
268
269
270 if (InterruptStatus != 0xFFFFFFFF)
272 else
274
276 break;
277 }
278
283 break;
284
287 break;
288
291 break;
292
295 break;
296
299 break;
300
303 break;
304
307 break;
308
310 GenericInfo.Ulong = 0;
314 break;
315
317 {
318 static const CHAR VendorDesc[] =
"DC21x4 compatible Ethernet Adapter";
319 InfoPtr = (
PVOID)&VendorDesc;
320 InfoLength = sizeof(VendorDesc);
321 break;
322 }
323
325
326 GenericInfo.Ulong = 0x100;
327 break;
328
330 {
331 InfoLength =
sizeof(
USHORT);
332 GenericInfo.Ushort = (NDIS_MINIPORT_MAJOR_VERSION << 8) | NDIS_MINIPORT_MINOR_VERSION;
333 break;
334 }
335
338 break;
339
344 break;
345
349 break;
350
354 break;
355
359 break;
360
363 break;
364
384 {
386
387 *BytesNeeded =
sizeof(
ULONG64);
388 if (InformationBufferLength <
sizeof(
ULONG))
389 {
392 }
393 if (InformationBufferLength >=
sizeof(
ULONG64))
394 {
397 }
398 else
399 {
402 }
403
405 }
406
409 break;
410
412 {
414
416
417 if (InformationBufferLength < InfoLength)
418 {
420 *BytesNeeded = InfoLength;
422 }
423
426
428 *BytesNeeded = 0;
429
434
436 }
437
439 {
442
444 }
445
447 {
450
454 break;
455 }
456
457 default:
459 break;
460 }
461
463 {
464 if (InfoLength > InformationBufferLength)
465 {
467 *BytesNeeded = InfoLength;
469 }
470 else
471 {
474 *BytesNeeded = 0;
475 }
476 }
477 else
478 {
480 *BytesNeeded = 0;
481 }
482
484}
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
@ 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
#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::@1058 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