Irql_NetBuffer_Function rule (ndis)

The Irql_NetBuffer_Function rule specifies that the NET_BUFFER-related functions must be called at correct IRQL levels.

This rule verifies the following NDIS functions:

NdisAdvanceNetBufferDataStart disAdvanceNetBufferListDataStart NdisAllocateCloneNetBufferList NdisAllocateFragmentNetBufferList NdisAllocateMdl NdisAllocateNetBuffer NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferList NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool NdisAllocateNetBufferMdlAndData NdisAllocateNetBufferPool NdisAllocateReassembledNetBufferList NdisCopyFromNetBufferToNetBuffer NdisCopyReceiveNetBufferListInfo NdisCopySendNetBufferListInfo NdisFreeCloneNetBufferList NdisFreeFragmentNetBufferList NdisFreeMdl NdisFreeNetBuffer NdisFreeNetBufferList NdisFreeNetBufferListContext NdisFreeNetBufferListPool NdisFreeNetBufferPool NdisFreeReassembledNetBufferList NdisGetDataBuffer NdisGetMdlPhysicalArraySize NdisGetPoolFromNetBuffer NdisGetPoolFromNetBufferList NdisQueryMdl NdisQueryMdlOffset NdisQueryNetBufferPhysicalCount NdisRetreatNetBufferDataStart NdisRetreatNetBufferListDataStart

Driver model: NDIS

How to test

At compile time

Run Static Driver Verifier and specify the Irql_NetBuffer_Function rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Applies to

NdisAdvanceNetBufferDataStart NdisAdvanceNetBufferListDataStart NdisAllocateCloneNetBufferList NdisAllocateFragmentNetBufferList NdisAllocateMdl NdisAllocateNetBuffer NdisAllocateNetBufferAndNetBufferList NdisAllocateNetBufferList NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool NdisAllocateNetBufferMdlAndData NdisAllocateNetBufferPool NdisAllocateReassembledNetBufferList NdisCopyFromNetBufferToNetBuffer NdisCopyReceiveNetBufferListInfo NdisCopySendNetBufferListInfo NdisFreeCloneNetBufferList NdisFreeFragmentNetBufferList NdisFreeMdl NdisFreeNetBuffer NdisFreeNetBufferList NdisFreeNetBufferListContext NdisFreeNetBufferListPool NdisFreeNetBufferPool NdisFreeReassembledNetBufferList NdisGetDataBuffer NdisGetMdlPhysicalArraySize NdisGetPoolFromNetBuffer NdisGetPoolFromNetBufferList NdisQueryMdl NdisQueryMdlOffset NdisQueryNetBufferPhysicalCount NdisRetreatNetBufferDataStart NdisRetreatNetBufferListDataStart