Irql_Miscellaneous_Function rule (ndis)

The Irql_Miscellaneous_Function rule specifies that the NDIS functions must be called at correct IRQL levels.

This rule verifies the following functions:

KeGetCurrentProcessorNumber NdisAllocateFromNPagedLookasideList NdisAllocateGenericObject NdisAllocateIoWorkItem NdisAllocateMemoryWithTagPriority NdisAnsiStringToUnicodeString NdisCloseConfiguration NdisCloseFile NdisDeleteNPagedLookasideList NdisDeregisterDeviceEx NdisEqualMemory NdisEqualUnicodeString NdisFreeGenericObject NdisFreeIoWorkItem NdisFreeMemory NdisFreeSpinLock NdisFreeString NdisFreeToNPagedLookasideList NdisGeneratePartialCancelId NdisGetCurrentProcessorCounts NdisGetDriverHandle NdisGetRoutineAddress NdisGetSharedDataAlignment NdisGetVersion NdisInitAnsiString NdisInitializeListHead NdisInitializeNPagedLookasideList NdisInitializeSListHead NdisInitializeString NdisInitUnicodeString NdisMapFile NdisOpenConfigurationEx NdisOpenConfigurationKeyByIndex NdisOpenConfigurationKeyByName NdisOpenFile NdisQueryAdapterInstanceName NdisQueryDepthSList NdisQueueIoWorkItem NdisReadConfiguration NdisReadNetworkAddress NdisReEnumerateProtocolBindings NdisSetOptionalHandlers NdisSystemProcessorCount NdisUnicodeStringToAnsiString NdisUnmapFile NdisUpcaseUnicodeString NdisWaitEvent NdisWriteConfiguration NdisWriteErrorLogEntry NdisWriteEventLogEntry

Driver model: NDIS

How to test

At compile time

Run Static Driver Verifier and specify the Irql_Miscellaneous_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

NdisAllocateFromNPagedLookasideList
NdisAllocateGenericObject
NdisAllocateIoWorkItem
NdisAllocateMemoryWithTagPriority
NdisAnsiStringToUnicodeString
NdisCloseConfiguration
NdisCloseFile
NdisDeleteNPagedLookasideList
NdisDeregisterDeviceEx
NdisEqualMemory
NdisEqualString
NdisEqualUnicodeString
NdisFreeGenericObject
NdisFreeIoWorkItem
NdisFreeMemory
NdisFreeString
NdisFreeToNPagedLookasideList
NdisGeneratePartialCancelId
NdisGetCurrentProcessorCounts
NdisGetRoutineAddress
NdisGetSharedDataAlignment
NdisGetVersion
NdisInitAnsiString
NdisInitializeNPagedLookasideList
NdisInitializeString
NdisInitUnicodeString
NdisMapFile
NdisOpenConfigurationEx
NdisOpenConfigurationKeyByIndex
NdisOpenConfigurationKeyByName
NdisOpenFile
NdisQueryAdapterInstanceName
NdisQueryDepthSList
NdisQueueIoWorkItem
NdisReadConfiguration
NdisReadNetworkAddress
NdisReEnumerateProtocolBindings
NdisRegisterDeviceEx
NdisSetOptionalHandlers
NdisSystemProcessorCount
NdisUnicodeStringToAnsiString
NdisUnmapFile
NdisUpcaseUnicodeString
NdisWaitEvent
NdisWriteConfiguration
NdisWriteErrorLogEntry
NdisWriteEventLogEntry
KeGetCurrentProcessorNumber