/*++

    Copyright (c) Microsoft Corporation.  All rights reserved.

Rule Name:

    Irql_Interfaces_Function

Domain:

    ndis

Rule ID:

    Not Applicable

Description:

    This rule verifies that interfaces (If) related DDIs are only called at proper IRQL levels.

    Check for the proper IRQL when the function is entering.
    
    Related Rule:

Help Link:

    https://go.microsoft.com/fwlink/?LinkId=507172

--*/



#include "slic_base.h"


NdisIfAddIfStackEntry.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfAllocateNetLuidIndex.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfDeleteIfStackEntry.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfDeregisterInterface.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfDeregisterProvider.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfFreeNetLuidIndex.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfGetInterfaceIndexFromNetLuid.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfGetNetLuidFromInterfaceIndex.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfQueryBindingIfIndex.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfRegisterInterface.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

NdisIfRegisterProvider.entry
{
    if ( sdv_irql_current != PASSIVE_LEVEL ) {
        abort "$fname should only be called at IRQL  = PASSIVE_LEVEL.";
    }
}

