Why " Supported list does not contain required Oid " in certification test ?

I am doing Miniport network driver certification using HCK . While doing a test , i got error like " Supported list does not contain required Oid " . I code miniport.cpp i wrote all supported OID . why these error coming ?

ERRORS :

Variation #6 Check for all required oids
PrintOidName

  • Oid = 0x00010115, OID_GEN_MAXIMUM_SEND_PACKETS
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x00020101, OID_GEN_XMIT_OK
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x00020102, OID_GEN_RCV_OK
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x00020103, OID_GEN_XMIT_ERROR
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x00020104, OID_GEN_RCV_ERROR
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x00020105, OID_GEN_RCV_NO_BUFFER
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x01020101, OID_802_3_RCV_ERROR_ALIGNMENT
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x01020102, OID_802_3_XMIT_ONE_COLLISION
    FAILED: [21478] Supported list does not contain required Oid
    PrintOidName
  • Oid = 0x01020103, OID_802_3_XMIT_MORE_COLLISIONS
    FAILED: [21478] Supported list does not contain required Oid

in my code i wrote :

ntddndis.h

//
// Required OIDs
//
#define OID_GEN_SUPPORTED_LIST 0x00010101
#define OID_GEN_HARDWARE_STATUS 0x00010102
#define OID_GEN_MEDIA_SUPPORTED 0x00010103
#define OID_GEN_MEDIA_IN_USE 0x00010104
#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
#define OID_GEN_LINK_SPEED 0x00010107
#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
#define OID_GEN_VENDOR_ID 0x0001010C
#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
#define OID_GEN_DRIVER_VERSION 0x00010110
#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
#define OID_GEN_MAC_OPTIONS 0x00010113
#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115

//
// Optional OIDs
//
#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
#define OID_GEN_SUPPORTED_GUIDS 0x00010117
#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 // Set only
#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 // Set only
#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
#define OID_GEN_PHYSICAL_MEDIUM 0x00010202

#if ((NTDDI_VERSION >= NTDDI_VISTA) || NDIS_SUPPORT_NDIS6)
//
// new optional for NDIS 6.0
//
#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 // query only
#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 // query and set

//
// new for NDIS 6.0. NDIS will handle on behalf of the miniports
//
#define OID_GEN_MAC_ADDRESS 0x00010205 // query and set
#define OID_GEN_MAX_LINK_SPEED 0x00010206 // query only
#define OID_GEN_LINK_STATE 0x00010207 // query only

//
// Required statistics
//
#define OID_GEN_XMIT_OK 0x00020101
#define OID_GEN_RCV_OK 0x00020102
#define OID_GEN_XMIT_ERROR 0x00020103
#define OID_GEN_RCV_ERROR 0x00020104
#define OID_GEN_RCV_NO_BUFFER 0x00020105

#if ((NTDDI_VERSION >= NTDDI_VISTA) || NDIS_SUPPORT_NDIS6)
//
// mandatory for NDIS 6.0 and higher miniports
//
#define OID_GEN_STATISTICS 0x00020106
#endif // (NTDDI_VERSION >= NTDDI_VISTA)

//
// Optional statistics
//
#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
#define OID_GEN_RCV_CRC_ERROR 0x0002020D
#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E

#define OID_GEN_GET_TIME_CAPS 0x0002020F
#define OID_GEN_GET_NETCARD_TIME 0x00020210
#define OID_GEN_NETCARD_LOAD 0x00020211
#define OID_GEN_DEVICE_PROFILE 0x00020212

And when you pass the list of supported OIDs with the call to NdisMSetMiniportAttributes in the NDIS_MINIPORT_ADAPTER_ATTRIBUTES structure does your list of supported OIDs include the ones that it says are missing? The error message seems to say the list of supported OIDS is incorrect, which is different than if you wrote code to handle those OIDs.

Jan

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@gmail.com
Sent: Monday, October 5, 2015 12:31 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Why " Supported list does not contain required Oid " in certification test ?

I am doing Miniport network driver certification using HCK . While doing a test , i got error like " Supported list does not contain required Oid " . I code miniport.cpp i wrote all supported OID . why these error coming ?

ERRORS :

Variation #6 Check for all required oids PrintOidName
- Oid = 0x00010115, OID_GEN_MAXIMUM_SEND_PACKETS
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x00020101, OID_GEN_XMIT_OK
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x00020102, OID_GEN_RCV_OK
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x00020103, OID_GEN_XMIT_ERROR
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x00020104, OID_GEN_RCV_ERROR
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x00020105, OID_GEN_RCV_NO_BUFFER
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x01020101, OID_802_3_RCV_ERROR_ALIGNMENT
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x01020102, OID_802_3_XMIT_ONE_COLLISION
FAILED: [21478] Supported list does not contain required Oid PrintOidName
- Oid = 0x01020103, OID_802_3_XMIT_MORE_COLLISIONS
FAILED: [21478] Supported list does not contain required Oid

in my code i wrote :

ntddndis.h

//
// Required OIDs
//
#define OID_GEN_SUPPORTED_LIST 0x00010101
#define OID_GEN_HARDWARE_STATUS 0x00010102
#define OID_GEN_MEDIA_SUPPORTED 0x00010103
#define OID_GEN_MEDIA_IN_USE 0x00010104
#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
#define OID_GEN_LINK_SPEED 0x00010107
#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
#define OID_GEN_VENDOR_ID 0x0001010C
#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
#define OID_GEN_DRIVER_VERSION 0x00010110
#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
#define OID_GEN_MAC_OPTIONS 0x00010113
#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115

//
// Optional OIDs
//
#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
#define OID_GEN_SUPPORTED_GUIDS 0x00010117
#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 // Set only
#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 // Set only
#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
#define OID_GEN_PHYSICAL_MEDIUM 0x00010202

#if ((NTDDI_VERSION >= NTDDI_VISTA) || NDIS_SUPPORT_NDIS6) // // new optional for NDIS 6.0 //
#define OID_GEN_RECEIVE_SCALE_CAPABILITIES 0x00010203 // query only
#define OID_GEN_RECEIVE_SCALE_PARAMETERS 0x00010204 // query and set

//
// new for NDIS 6.0. NDIS will handle on behalf of the miniports //
#define OID_GEN_MAC_ADDRESS 0x00010205 // query and set
#define OID_GEN_MAX_LINK_SPEED 0x00010206 // query only
#define OID_GEN_LINK_STATE 0x00010207 // query only

//
// Required statistics
//
#define OID_GEN_XMIT_OK 0x00020101
#define OID_GEN_RCV_OK 0x00020102
#define OID_GEN_XMIT_ERROR 0x00020103
#define OID_GEN_RCV_ERROR 0x00020104
#define OID_GEN_RCV_NO_BUFFER 0x00020105

#if ((NTDDI_VERSION >= NTDDI_VISTA) || NDIS_SUPPORT_NDIS6) // // mandatory for NDIS 6.0 and higher miniports //
#define OID_GEN_STATISTICS 0x00020106
#endif // (NTDDI_VERSION >= NTDDI_VISTA)

//
// Optional statistics
//
#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
#define OID_GEN_RCV_CRC_ERROR 0x0002020D
#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E

#define OID_GEN_GET_TIME_CAPS 0x0002020F
#define OID_GEN_GET_NETCARD_TIME 0x00020210
#define OID_GEN_NETCARD_LOAD 0x00020211
#define OID_GEN_DEVICE_PROFILE 0x00020212


NTDEV is sponsored by OSR

Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev

OSR is HIRING!! See http://www.osr.com/careers

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

my oid request function is like this :

NDIS_STATUS CMiniport::OidRequest(
__in PNDIS_OID_REQUEST OidRequest
) {

NDIS_STATUS status = NDIS_STATUS_SUCCESS;

if ((OidRequest->RequestType == NdisRequestQueryInformation) || (OidRequest->RequestType == NdisRequestQueryStatistics))

{
PVOID pInformation = NULL;
ULONG ulInformationLength = 0;
ULONG ulZerro = 0;

switch (OidRequest->DATA.QUERY_INFORMATION.Oid)
{

case OID_GEN_HARDWARE_STATUS:

break;

case OID_GEN_MAXIMUM_SEND_PACKETS :

break;

etc…

}

I included OID_GEN_MAXIMUM_SEND_PACKETS as switch cases and why this error message like
PrintOidName

  • Oid = 0x00010115, OID_GEN_MAXIMUM_SEND_PACKETS
    FAILED: [21478] Supported list does not contain required Oid

please explain .

(well, it’s been many years since I worked on NDIS drivers, but…)

IIRC, there’s a point where you actually return to NDIS a list of the OIDs your driver supports. The message says that this list does not contain one or more required OIDs, such as OID_GEN_MAXIMUM_SEND_PACKETS.

Again, like your other post, I’m not sure what it is that you don’t understand.

Are you the developer of this NDIS driver?

Peter
OSR
@OSRDrivers

And you didn’t answer my question, did you correctly include those OIDs on the list of OIDs your driver understood? Actually there is a debugger extension that will display what OIDs a miniport claims to support, it’s one of the options to !ndiskd

Jan

On 10/5/15, 3:57 AM, “xxxxx@lists.osr.com on behalf of xxxxx@gmail.com” wrote:

>my oid request function is like this :
>
>NDIS_STATUS CMiniport::OidRequest(
> __in PNDIS_OID_REQUEST OidRequest
>) {
>
> NDIS_STATUS status = NDIS_STATUS_SUCCESS;
>
> if ((OidRequest->RequestType == NdisRequestQueryInformation) || (OidRequest->RequestType == NdisRequestQueryStatistics))
>
> {
> PVOID pInformation = NULL;
> ULONG ulInformationLength = 0;
> ULONG ulZerro = 0;
>
> switch (OidRequest->DATA.QUERY_INFORMATION.Oid)
> {
>
> case OID_GEN_HARDWARE_STATUS:
> ----
> break;
>
> case OID_GEN_MAXIMUM_SEND_PACKETS :
> –
> break;
>
> etc…
>
> }
>
>I included OID_GEN_MAXIMUM_SEND_PACKETS as switch cases and why this error message like
>PrintOidName
>- Oid = 0x00010115, OID_GEN_MAXIMUM_SEND_PACKETS
>FAILED: [21478] Supported list does not contain required Oid
>
>please explain .
>
>—
>NTDEV is sponsored by OSR
>
>Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
>OSR is HIRING!! See http://www.osr.com/careers
>
>For our schedule of WDF, WDM, debugging and other seminars visit:
>http://www.osr.com/seminars
>
>To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

yes . i think . i included like this

m_ulSupportedOidsSize = 44;

m_pSupportedOids = new NDIS_OID[m_ulSupportedOidsSize];

m_pSupportedOids[uIdx++] = OID_GEN_HARDWARE_STATUS;
m_pSupportedOids[uIdx++] = OID_GEN_TRANSMIT_BUFFER_SPACE;
m_pSupportedOids[uIdx++] = OID_GEN_RECEIVE_BUFFER_SPACE;
m_pSupportedOids[uIdx++] = OID_GEN_TRANSMIT_BLOCK_SIZE;
m_pSupportedOids[uIdx++] = OID_GEN_RECEIVE_BLOCK_SIZE;
m_pSupportedOids[uIdx++] = OID_GEN_VENDOR_ID;
m_pSupportedOids[uIdx++] = OID_GEN_VENDOR_DESCRIPTION;
m_pSupportedOids[uIdx++] = OID_GEN_VENDOR_DRIVER_VERSION;
m_pSupportedOids[uIdx++] = OID_GEN_CURRENT_PACKET_FILTER;
m_pSupportedOids[uIdx++] = OID_GEN_CURRENT_LOOKAHEAD;

m_pSupportedOids[uIdx++] = OID_GEN_DRIVER_VERSION;
m_pSupportedOids[uIdx++] = OID_GEN_MAXIMUM_TOTAL_SIZE;
m_pSupportedOids[uIdx++] = OID_GEN_XMIT_OK;
m_pSupportedOids[uIdx++] = OID_GEN_RCV_OK;
m_pSupportedOids[uIdx++] = OID_GEN_STATISTICS;
m_pSupportedOids[uIdx++] = OID_GEN_TRANSMIT_QUEUE_LENGTH;
m_pSupportedOids[uIdx++] = OID_GEN_LINK_PARAMETERS;
m_pSupportedOids[uIdx++] = OID_GEN_INTERRUPT_MODERATION;
m_pSupportedOids[uIdx++] = OID_GEN_MEDIA_SUPPORTED;
m_pSupportedOids[uIdx++] = OID_GEN_MEDIA_IN_USE;

m_pSupportedOids[uIdx++] = OID_GEN_MAXIMUM_SEND_PACKETS;
m_pSupportedOids[uIdx++] = OID_GEN_XMIT_ERROR;
m_pSupportedOids[uIdx++] = OID_GEN_RCV_ERROR;
m_pSupportedOids[uIdx++] = OID_GEN_RCV_NO_BUFFER;
m_pSupportedOids[uIdx++] = OID_802_3_PERMANENT_ADDRESS;
m_pSupportedOids[uIdx++] = OID_802_3_CURRENT_ADDRESS;
m_pSupportedOids[uIdx++] = OID_802_3_MULTICAST_LIST;
m_pSupportedOids[uIdx++] = OID_802_3_MAXIMUM_LIST_SIZE;
m_pSupportedOids[uIdx++] = OID_802_3_RCV_ERROR_ALIGNMENT;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_ONE_COLLISION;

m_pSupportedOids[uIdx++] = OID_802_3_XMIT_MORE_COLLISIONS;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_DEFERRED;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_MAX_COLLISIONS;
m_pSupportedOids[uIdx++] = OID_802_3_RCV_OVERRUN;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_UNDERRUN;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_HEARTBEAT_FAILURE;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_TIMES_CRS_LOST;
m_pSupportedOids[uIdx++] = OID_802_3_XMIT_LATE_COLLISIONS;
m_pSupportedOids[uIdx++] = OID_PNP_CAPABILITIES;
m_pSupportedOids[uIdx++] = OID_RECEIVE_FILTER_ALLOCATE_QUEUE;

m_pSupportedOids[uIdx++] = OID_RECEIVE_FILTER_QUEUE_ALLOCATION_COMPLETE;
m_pSupportedOids[uIdx++] = OID_RECEIVE_FILTER_FREE_QUEUE;
m_pSupportedOids[uIdx++] = OID_RECEIVE_FILTER_CLEAR_FILTER;
m_pSupportedOids[uIdx++] = OID_RECEIVE_FILTER_SET_FILTER;

So i included OID_GEN_MAXIMUM_SEND_PACKETS, OID_GEN_XMIT_OK, OID_GEN_RCV_OK etc . Then why this error " Supported list does not contain required Oid " happening ?

where m_pSupportedOids is a member of class MINIPORT .

class MINIPORT
{

public:

static NDIS_STATUS OidRequest(
__in NDIS_HANDLE MiniportAdapterContext,
__in PNDIS_OID_REQUEST OidRequest
) {
return reinterpret_cast(MiniportAdapterContext)- >OidRequest(OidRequest);

}

private :

NDIS_OID *m_pSupportedOids;

ULONG m_ulSupportedOidsSize;

MINIPORT(NDIS_HANDLE hAdapter);

~MINIPORT();

NDIS_STATUS OidRequest(
__in PNDIS_OID_REQUEST OidRequest
);

}

I’d suggest you use the !ndiskd debugger extension to dump what NDIS thinks is your list of supported OIDs.

I might also breakpoint just before the call to NdisMSetMiniportAttributes and see if the structures about to be passed look correct.

Jan

On 10/6/15, 12:23 AM, “xxxxx@lists.osr.com on behalf of xxxxx@gmail.com” wrote:

>where m_pSupportedOids is a member of class MINIPORT .
>
>class MINIPORT
>{
>
>public:
>
>static NDIS_STATUS OidRequest(
> in NDIS_HANDLE MiniportAdapterContext,
>
in PNDIS_OID_REQUEST OidRequest
> ) {
> return reinterpret_cast(MiniportAdapterContext)- >OidRequest(OidRequest);
>
> }
>
>
>private :
>
> NDIS_OID *m_pSupportedOids;
>
> ULONG m_ulSupportedOidsSize;
>
> MINIPORT(NDIS_HANDLE hAdapter);
>
> ~MINIPORT();
>
> NDIS_STATUS OidRequest(
> __in PNDIS_OID_REQUEST OidRequest
> );
>
>}
>
>—
>NTDEV is sponsored by OSR
>
>Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
>OSR is HIRING!! See http://www.osr.com/careers
>
>For our schedule of WDF, WDM, debugging and other seminars visit:
>http://www.osr.com/seminars
>
>To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

my log file is : like

Variation #5 Get Supported OID List
NdisIoControl
Card = {333FC98E-ABFG-66YF-8U45-77995555B544}

  • QueryMode = 0
  • OID = OID_GEN_SUPPORTED_LIST

Supported OIDs are:

OID_GEN_HARDWARE_STATUS
OID_GEN_TRANSMIT_BUFFER_SPACE
OID_GEN_RECEIVE_BUFFER_SPACE
OID_GEN_TRANSMIT_BLOCK_SIZE
OID_GEN_RECEIVE_BLOCK_SIZE
OID_GEN_VENDOR_ID
OID_GEN_VENDOR_DESCRIPTION
OID_GEN_VENDOR_DRIVER_VERSION
OID_GEN_CURRENT_PACKET_FILTER
OID_GEN_CURRENT_LOOKAHEAD
OID_GEN_DRIVER_VERSION
OID_GEN_SUPPORTED_LIST
OID_GEN_MEDIA_SUPPORTED
OID_GEN_MEDIA_IN_USE
OID_GEN_CURRENT_PACKET_FILTER
OID_GEN_CURRENT_LOOKAHEAD
OID_GEN_DRIVER_VERSION
OID_GEN_PHYSICAL_MEDIUM
OID_GEN_INIT_TIME_MS
OID_GEN_RESET_COUNTS
OID_GEN_MEDIA_SENSE_COUNTS
OID_GEN_FRIENDLY_NAME
OID_GEN_PCI_DEVICE_CUSTOM_PROPERTIES
OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES
OID_TCP_OFFLOAD_CURRENT_CONFIG
OID_TCP_CONNECTION_OFFLOAD_CURRENT_CONFIG
OID_TCP_CONNECTION_OFFLOAD_HARDWARE_CAPABILITIES
OID_TCP_CONNECTION_OFFLOAD_PARAMETERS
OID_GEN_LINK_STATE
OID_PNP_CAPABILITIES
OID_PNP_WAKE_UP_PATTERN_LIST
OID_GEN_DIRECTED_BYTES_XMIT
OID_GEN_DIRECTED_FRAMES_XMIT
OID_GEN_MULTICAST_BYTES_XMIT
OID_GEN_MULTICAST_FRAMES_XMIT
OID_GEN_BROADCAST_BYTES_XMIT
OID_GEN_BROADCAST_FRAMES_XMIT
OID_GEN_DIRECTED_BYTES_RCV
OID_GEN_DIRECTED_FRAMES_RCV
OID_GEN_MULTICAST_BYTES_RCV
OID_GEN_MULTICAST_FRAMES_RCV
OID_GEN_BROADCAST_BYTES_RCV
OID_GEN_BROADCAST_FRAMES_RCV
OID_GEN_RCV_DISCARDS
OID_GEN_BYTES_RCV
OID_GEN_BYTES_XMIT
OID_GEN_PHYSICAL_MEDIUM_EX
OID_PM_HARDWARE_CAPABILITIES
OID_PM_CURRENT_CAPABILITIES
OID_PM_WOL_PATTERN_LIST
OID_PM_PROTOCOL_OFFLOAD_LIST
OID_GEN_MAXIMUM_FRAME_SIZE
OID_GEN_MAXIMUM_LOOKAHEAD
OID_GEN_LINK_SPEED
OID_GEN_MAC_OPTIONS
OID_GEN_MEDIA_CONNECT_STATUS
OID_GEN_RECEIVE_SCALE_CAPABILITIES
OID_GEN_MAC_ADDRESS
OID_GEN_MAX_LINK_SPEED
OID_GEN_LINK_STATE
OID_GEN_ENUMERATE_PORTS
OID_GEN_PORT_STATE
OID_GEN_MAXIMUM_TOTAL_SIZE
OID_GEN_PORT_AUTHENTICATION_PARAMETERS
OID_GEN_HD_SPLIT_CURRENT_CONFIG
OID_RECEIVE_FILTER_HARDWARE_CAPABILITIES
OID_RECEIVE_FILTER_ENUM_QUEUES
OID_RECEIVE_FILTER_ENUM_FILTERS
OID_RECEIVE_FILTER_PARAMETERS
OID_RECEIVE_FILTER_GLOBAL_PARAMETERS
OID_RECEIVE_FILTER_QUEUE_PARAMETERS
OID_802_3_MULTICAST_LIST
OID_802_3_PERMANENT_ADDRESS
OID_802_3_CURRENT_ADDRESS
OID_802_3_MAXIMUM_LIST_SIZE
OID_OFFLOAD_ENCAPSULATION

Variation #6 Check for all required oids

PrintOidName

  • Oid = 0x00010115, OID_GEN_MAXIMUM_SEND_PACKETS
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x00020101, OID_GEN_XMIT_OK
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x00020102, OID_GEN_RCV_OK
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x00020103, OID_GEN_XMIT_ERROR
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x00020104, OID_GEN_RCV_ERROR
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x00020105, OID_GEN_RCV_NO_BUFFER
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x01020101, OID_802_3_RCV_ERROR_ALIGNMENT
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x01020102, OID_802_3_XMIT_ONE_COLLISION
    FAILED: [21478] Supported list does not contain required Oid

PrintOidName

  • Oid = 0x01020103, OID_802_3_XMIT_MORE_COLLISIONS
    FAILED: [21478] Supported list does not contain required Oid

and system info :

Date/Time: 10/7/2015 3:25:51 PM
Script: C:\WLK\JobsWorkingDir\Tasks\WTTJobRunAF4B7CDB-825A-4E3A-8DAA-856BA01B98C2\ndistest\scripts\lan\1c_ioctlcoverage.wsf
NDIS Test: 6.3.9600.17369
OS Type: Windows 7 Professional Professional (Laptop)
OS Version: 6.1 Build 7601 (Service Pack 1) Multiprocessor Free 7601.win7sp1_rtm.101119-1850
BIOS Date: 07/08/14
BIOS Name: DELL - 6222004
CPU Type: x86 Family 6 Model 42 Stepping 7, GenuineIntel
Processors: 4
Loop Count: 1
Driver Verifier Selection: Ignore
ndis.sys: 712576 11/20/2010 4:30:08 6.1.7601.17514 Free
Driver Verifier Level: Disabled
WHQL Test Mode: No

Test Device
CLIENTTEST2LAP: mydriver Virtual Network Driver
C:\Windows\system32\DRIVERS\nsv.sys
19376 10/7/2015 15:06:18 4.5.0.2 Free
Driver Verifier Level: Disabled
Ethernet VIRTUAL/ISA
{173BC96E-ABCD-44FD-8E12-77994895B279}
mydriver_nsv
MAXIMUM_TOTAL_SIZE = 1514
LINK_SPEED = 1 Gbps
OID_PNP_CAPABILITIES Flags = 0x0
Magic\Pattern\Link Wake Unspecified\Unspecified\Unspecified
MAC_OPTIONS = 0x98
Lookahead buffer cannot be copied directly
Receives are not Serialized
Transfers can be Pended
NDIS handles Loopback
802.1p Priority is not supported
Mac Address can be Overwritten
802.1q VLAN is not supported
MINIPORT_INFO = 0x2932882
Not a Bus Master
WDM Driver
Does not use Scatter Gather List
Does not support ResetHandlerEx
Does not Indicate Packets
Outstanding packets cannot cause reset to be called
Outstanding requests cannot cause reset to be called
Ignore Token Ring Errors
Not an IM Driver
Is not an Ndis 5 driver
Is not Connection Oriented
Deserialized
Does not require Media Polling
Is not a NetBoot Card
Power Management is not supported
Supports Mac Address Overwrite
Uses Safe Buffer Apis
Is not Hidden
Is not Software Enumerated
Surprise Remove OK
Halt on Suspend
Is not a Hardware Device
Supports Cancel Send Packets
Does not do 64 Bit DMA

Well, there you go. You have the list of OIDs that NDIS sees you as supporting… and you have the list of OIDs that NDIS says you must support but are not supporting.

Because you have a bug. Looks to ME like NDIS is not understanding the list you are building and passing. Time to get out the debugger, right? Do some debugging??

Peter
OSR
@OSRDrivers

So the problem is my NDIS not detecting my supported oid ? Is it a problems when I
Declare like

m_ulSupportedOidsSize = 44;

m_pSupportedOids = new NDIS_OID[m_ulSupportedOidsSize];
m_pSupportedOids[uIdx++] = OID_GEN_TRANSMIT_BUFFER_SPACE;

Instead of

m_pSupportedOids = {oid…}

Ok… if I enable windbug for debugging my driver… How can I put break point ? Where can I put break point to know whether driver detect oid ?

xxxxx@gmail.com wrote:

So the problem is my NDIS not detecting my supported oid ? Is it a problems when I
Declare like

m_ulSupportedOidsSize = 44;
m_pSupportedOids = new NDIS_OID[m_ulSupportedOidsSize];
m_pSupportedOids[uIdx++] = OID_GEN_TRANSMIT_BUFFER_SPACE;

Instead of

m_pSupportedOids = {oid…}

We can’t tell you that.

Ok… if I enable windbug for debugging my driver… How can I put break point ? Where can I put break point to know whether driver detect oid ?

The first place I would start is to break just after I create that
structure but before I pass it to NDIS, to make sure that the data in
memory looks like what I expect. Take EXTRA steps to make sure you are
counting correctly. It’s extremely easy to make an off-by-one error in
this kind of code, and it can be difficult to spot it, because your eyes
know what they expect to see.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

after using !ndiskd.miniport i can see my miniport information like

MINIPORT

my Virtual Network Driver

Ndis Handle 8fc5f0e0
Ndis API Version v6.20
Adapter Context 933ccf7ce
Miniport Driver 8fc5b248 - mynet.sys v4.5
Ndis Verifier [No flags set]

Media Type 802.3
Physical Medium 802.3
Device Path String with 95 characters [Buffer at 9d8e2590 is not available]
Device Object 8fc5f028
MAC Address 00-44-yy-77-99-44

STATE

Miniport Running
Device PnP Started
Datapath Normal
Interface Up
Media Connected
Power D0
References 0n12
User Handles 0
Total Resets 0
Pending OID None
Flags 2c452000

But here pending OID is none . Them this " support OID " error still occur ?