regola Irql_Miscellaneous_Function (ndi)

La regola Irql_Miscellaneous_Function specifica che le funzioni NDIS devono essere chiamate a livelli IRQL corretti.

Questa regola verifica le funzioni seguenti:

KeGetCurrentProcessorNumberNdisAllocateFromNPagedLookasideListNdisAllocateGenericObjectNdisAllocateIoWorkItemNdisAllocateMemoryWithTagPriorityNdisAnsiStringToUnicodeStringNdisCloseConfigurationNdisCloseFileNdisDeleteNPagedLookasideListNdisDeregisterDeviceExNdisEqualMemoryNdisEqualUnicodeStringNdisFreeGenericObjectNdisFreeIoWorkItemNdisFreeMemoryNdisFreeSpinLockNdisFreeStringNdisFreeToNPagedLookasideListNdisGeneratePartialCancelIdNdisGetCurrentProcessorCountsNdisGetDriverHandleNdisGetRoutineAddressNdisGetSharedDataAlignmentNdisGetVersionNdisInitAnsiStringNdisInitializeListHeadNdisInitializeNPagedLookasideListNdisInitializeSListHeadNdisInitializeStringNdisInitUnicodeStringNdisMapFileNdisOpenConfigurationExNdisOpenConfigurationKeyByIndexNdisOpenConfigurationKeyByIndex NdisOpenConfigurationKeyByNameNdisOpenFileNdisQueryAdapterInstanceNameNdisQueryDepthSListNdisQueueIoWorkItemNdisReadConfigurationNdisReadNetworkAddressNdisReEnumerateProtocolBindingsNdisSetOptionalHandlersNdisSystemProcessorCountNdisUnicodeStringToAnsiStringNdisUnmapFileNdisUpcaseUnicodeStringNdisWaitEventNdisWriteConfigurationNdisWriteErrorLogEntryNdisWriteEventLogEntry

Modello di driver: NDIS

Come eseguire il test

In fase di compilazione

Eseguire Static Driver Verifier e specificare la regola di Irql_Miscellaneous_Function .

Usa i passaggi descritti di seguito per eseguire un'analisi del codice:
  1. Prepara il codice (usa dichiarazioni di tipo ruolo).
  2. Esegui Driver Verifier statico.
  3. Visualizza e analizza i risultati.

Per altre informazioni, vedere Using Static Driver Verifier to Find Defects in Drivers.For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Si applica a

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