Condividi tramite


Regola KmdfIrql2 (kmdf)

La regola KmdfIrql2 specifica che un driver chiama un metodo framework in un irQL minore o uguale al valore massimo di IRQL per tale metodo.

Questa regola è simile alla regola KmdfIrql ; Tuttavia, la regola KmdfIrql viene eseguita sulle funzioni di callback con requisiti IRQL indipendenti dalla specifica del livello di esecuzione dell'oggetto correlato.

Modello di driver: KMDF

Come eseguire il test

In fase di compilazione

Eseguire il verifica driver statico e specificare la regola KmdfIrql2 .

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 Uso del verificatore driver statico per trovare i difetti nei driver.

Si applica a

WdfChildListAddOrUpdateChildDescriptionAsPresentWdfChildListBeginIterationWdfChildListBeginScanWdfChildListCreate WdfChildListEndIteration WdfChildListEndIteration WdfChildListEndEndScanWdfChildListGetDeviceWdfChildListRequestChildEjectWdfChildListRetrieveAddressDescriptionWdfChildListRetrieveNextDeviceWdfChildListRetrievePdoWdfChildListUpdateAllChildDescriptionsAsPresentWdfChildListUpdateChildDescriptionAsMissingWdfCmResourceListAppendDescriptorWdfCmResourceListGetCountWdfCmReSourceListGetDescriptorWdfCmResourceListInsertDescriptorWdfCmResourceListRemoveWdfCmResourceListRemoveByDescriptorWdfCollectionAddWdfCollectionCreate WdfCollectionGetCountTe WdfCollectionGetCountWdfCollectionGetFirstItem WdfCollectionGetItem WdfCollectionGetLastItem WdfCollectionRemoveWdfCollectionRemoveItemWdfCommonBufferCreate WdfCommonBufferCreateWithConfig WdfCommonBufferGetAlignedLogicalAddress WdfCommonBufferGetAlignedVirtualAddress WdfCommonBufferGetLengthWDfDeviceInitAllocateWdfControlDeviceInitSetShutdownNotificationWdfControlFinishInitializingWdfDeviceAddDependentUsageDeviceObjectWdfDeviceAddQueryInterfaceWdfDeviceAddRemovalRelationsPhysicalDeviceWdfDeviceAllocAndQueryPropertyWdfDeviceAssignMofResourceNameWdfDeviceAssignS0IdleSettingsWdfDeviceAssignSxWakeSettingsWdfDeviceClearRemovalRelationsDevicesDevicesWdfDeviceConfigureRequestDispatchingWdfDeviceCreate WdfDeviceCreateDeviceInterface WdfDeviceCreateSymbolicLinkWdfDeviceEnqueueRequestWdfDeviceGetAlignmentRequirementWdfDeviceGetCharacteristicsWdfDeviceGetDefaultQueue WdfDeviceGetDeviceGetpState WdfDeviceGetGetDeviceGetGetDeviceWdfDeviceGetDeviceStateWdfDeviceGetDriverWdfDeviceGetFileObject WdfDeviceGetIoTarget WdfDeviceGetSystemPowerAction WdfDeviceIndicateStatus WdfDeviceInitAssignName WdfDeviceInitAssignName WdfDeviceInitAssignSDLStringWdfDeviceInitAssignWdmIrpPreprocessCallback WdfDeviceInitFree WdfDeviceInitRegisterPnpStateChangeCallback WdfDeviceInitRegisterPowerPolicyStateChangeCallbackWdfDeviceInitRegisterPowerStateChangeCallback WdfDeviceInitSetCharacteristics WdfDeviceInitSetDeviceClass WdfDeviceInitSetType WdfDeviceInitType WdfDeviceInitSetExclusive WdfDeviceInitSetFileObjectConfig WdfDeviceInitSetIoInCallerContextCallback WdfDeviceInitSetInitSetIoType WdfDeviceInitSetPnpPowerEventCallbacksWdfDeviceInitSetPowerInrushWdfDeviceInitSetPowerNotPageable WdfDeviceInitSetPowerPageable WdfDeviceInitSetPowerPolicyEventCallbacks WdfDeviceInitSetPowerPolicyOwnership WdfDeviceInitSetRequestAttributesWdfDeviceMiniportCreateWdfDeviceOpenRegistryKeyWdfDeviceQueryPropertyWdfDeviceRemoveDependentUsageDeviceObjectWdfDeviceRemoveRemovalRelationsPhysicalDeviceWdfDeviceResumeIdleWdfDeviceRetrieveDeviceInterfaceString WdfDeviceRetrieveDeviceName WdfDeviceSetAlignmentRequirement WdfDeviceSetInformationForChildren WdfDeviceSetCharacteristics WdfDeviceSetInterfaceState WdfDeviceSetDeviceState WdfDeviceSetFailedWdfDeviceSetPnpCapabilitiesWdfDeviceSetPowerCapabilitiesWdfDeviceSetSpecialFileSupportWdfDeviceSetStaticStopRemoveWdfDeviceStopIdleWdfDeviceWdmDispatchPreprocessedIrpWdfDeviceWdmGetAttachedDeviceWdfDeviceWdmGetDeviceObject WdfDeviceWdmGetPhysicalDeviceWdfmaEnablerCreateWdfDmaEnablerGetFragmentLengthWdfDmaEnablerGetMaximumLengthWdfDmaEnablerGetMaximumScatterGatherElementsWdfDmaEnablerSetMaximumScatterGatherElementsWdfDmaEnablerWdmGetDmaAdapterWdfDmaTransactionCreateWdfDmaTransactionDmaCompletedWdfDmaTransactionDmaCompletedFinalWdfDmaTransactionDmaCompletedWithLengthWdfDmaTransactionExecuteWdfDmaTransactionGetBytesTransferredWdfDmaTransactionGetCurrentDmaTransferLengthWdfDmaTransactionGetWdfDmaTransactionGetRequestWdfDmaTransactionInitializeWdfDmaTransactionInitializeUsingRequestWdfDmaTransactionReleaseWdfDpcCancelWdfDpcCreateWdfDpcEnqueueWdfDpcGetParentObjectWdfDpcWdmGetDpcWdfDriverCreateWdfDriverGetRegistryPathWdfDriverIsVersionAvailableWdfDriverOpenParametersRegistryKeyWdfDriverRetrieveVersionStringWdfFdoAddStaticChildWdfFdoGetDefaultChildListWdfFdoInitAllocAndQueryPropertyWdfFdoInitOpenRegistryKeyWdfFdoInitQueryPropertyWdfFdoInitSetDefaultChildListConfigWdfFdoInitSetEventCallbacksWdfFdoInitSetFilterWdfFdoInitWdmGetPhysicalDeviceWdfFdoLockStaticChildListForIterationWdfFdoQueryForInterfaceWdfFdoRetrieveNextStaticChildWdfFdoUnlockStaticChildListFromIterationWdfFileObjectGetDeviceWdfFileObjectGetFileName WdfFileObjectGetFlags WdfFileObjectWdmGetFileObjectWdfInterruptAcquireLockWdfInterruptCreateWdfInterruptDisableWdfInterruptEnableWdfInterruptReleaseLockWdfInterruptSynchronizeWdfIoQueueCreateWdfdfIoQueueDrainWdfIoQueueDrainSynchronouslyWdfIoQueueFindRequestWdfIoQueueGetDevice WdfIoQueueGetState WdfIoQueuePurgeWdfIoQueuePurgeSynchronouslyWdfIoQueueReadyNotifyWdfIoQueueRetrieveFoundRequestWdfIoQueueRetrieveNextRequestWdfIoQueueRetrieveRequestRequestByFileObjectWdfIoQueueStartWdfIoQueueStopWdfIoQueueStopSynchronouslyWdfIoResourceListAppendDescriptorWdfIoResourceListCreateWdfIoResourceListGetCountWdfIoResourceListGetDescriptorWdfIoResourceListInsertDescriptorWdfIoResourceListRemoveWdfIoResourceListRemoveByDescriptorWdfIoResourceListUpdateDescriptorWdfIoResourceRequirementsListAppendIoResListWdfIoResourceRequirementsListGetCountWdfIoResourceRequirementsListGetIoResListWdfIoResourceRequirementsListInsertIoResListWdfIoResourceRequirementsListRemove WdfIoResourceRequirementsListRemoveByIoResList WdfIoResourceRequirementsListSetInterfaceTypeWdfIoResourceRequirementsListSetSlotNumber WdfIoResourceRequirementsListSetSlotNumber WdfIoResourceRequirementsListSetInterfaceType WdfIoResourceRequirementsListSetSlotNumberWdfIodfIoTargetAllocAndQueryTargetPropertyWdfIoTargetCloseWdfIoTargetCloseForQueryRemove WdfIoTargetCreateWdfIoTargetFormatRequestForInternalIoctlWdfIoTargetFormatRequestForInternalIoctlOthersWdfIoTargetFormatRequestForIoctlWdfIoTargetFormatRequestForReadWdfIoTargetFormatRequestForWriteWdfIoTargetGetDeviceWdfIoTargetGetStateWdfIoTargetOpenWdfIoTargetQueryForInterfaceWdfIoTargetQueryTargetPropertyWdfIoTargetSendInternalIoctlOthersSynchronouslyWdfIoTargetSendInternalIoctlSynchronouslyWdfIoTargetSendIoctlSynchronouslyWdfIoTargetSendReadSynchronouslyWdfIoTargetSendWriteSynchronouslyWdfIoTargetStartWdfIoTargetStopWdfIoTargetWdmGetDeviceObjectWdfIoTargetWdmGetFileHandle WdfIoTargetWdmGetGetTargetFileObjectWdfIoTargetWdmGetGetPhysicalDeviceWdfLookasideListCreateWdfMemoryCreate WdfMemoryCreate WdfMemoryCreateWdfObjectAcquireLockWdfObjectCreate WdfObjectDelete WdfObjectReleaseLock WdfPdoAddEjectionRelationsPhysicalDeviceWdfPdoClearEjectionRelationsDevices WdfPdoInitAddCompatibleID WdfPdoInitAddDeviceText WdfPdoInitAddHardwareIDWdfPdoInitAllocateWdfPdoInitAssignDeviceIDWdfPdoInitAssignInstanceIDWdfPdoInitAssignRawDeviceWdfPdoInitSetDefaultLocaleWdfPdoInitSetEventCallbacksWdfPdoMarkMissingWdfPdoRemoveEjectionRelationsPhysicalDeviceWdfPdoRequestEjectWdfPdoRetrieveAddressDescriptionWdfPdoRetrieveIdentificationDescriptionWdfPdoUpdateAddressDescriptionWdfRegistryAssignMemoryWdfRegistryAssignMultiString WdfRegistryAssignStringWdfRegistring WdfRegistringyAssignULongWdfRegistryAssignUnicodeStringWdfRegistryAssignValueWdfRegistryCloseWdfRegistryCreateKeyWdfRegistryOpenKeyWdfRegistryQueryMemoryWdfRegistryQueryMultiStringWdfRegistryQueryString WdfRegistryQueryULong WdfRegistryQueryUnicodeString WdfRegistryQueryValue WdfRegistryRemoveKey WdfRegistryRemoveValue WdfRequestAllocateTimer WdfRequestCancelSentRequestRequestChangeTargetWdfRequestComplete WdfRequestCompleteWithInformationWdfRequestCompleteWithPriorityBoostWdfRequestCreate WdfRequestCreateFromIrp WdfRequestFormatRequestUsingCurrentType WdfRequestForwardToIoQueue WdfRequestGetCompletionParams WdfRequestGetFileObject WdfRequestGetInformation WdfRequestGetInformation WdfRequestGetParameters WdfRequestGetRequestMode WdfRequestGetRequestMode WdfRequestGetStatus WdfRequestIsCanceledWdfRequestIsFrom32BitProcessWdfRequestMarkCancelable WdfRequestMarkCancelableEx WdfRequestProbeAndLockUserBufferForRead WdfRequestProbeAndLockUserBufferForWrite WdfRequestRequestRequeue WdfRequestRetrieveInputBuffer WdfRequestRetrieveInputMemory WdfRequestRetrieveInputWdmdl WdfRequestRetrieveOutputBufferWdfRequestRetrieveOutputMemoryWdfRequestRetrieveOutputWdmdlWdfRequestRetrieveUnsafeUserInputBuffer WdfRequestRetrieveUnsafeUserOutputBufferWdfRequestReuse WdfRequestSetCompletionRoutine WdfRequestSetInformation WdfRequestStopAcknowledge WdfRequestUnmarkCancelable WdfRequestWdmFormatUsingStackLocationWdfRequestWdmGetIrp WdfSpinLockAcquire WdfSpinLockCreate WdfSpinLockRelease WdfStringCreate WdfStringGetUnicodeString WdfTimerCreate WdfTimerStart WdfTimerStop WdfUsbInterfaceGetConfiguredPipe WdfUsbInterfaceGetConfiguredSettingIndex WdfUsbInterfaceGetDescriptor WdfUsbInterfaceGetEndpointInformation WdfUsbInterfaceGetInterfaceNumber WdfUsbInterfaceGetNumConfiguredPipes WdfUsbInterfaceGetNumfaceGetEndpoints WdfUsbInterfaceGetSettings WdfUsbInterfaceSelectSetting WdfUsbTargetDeviceAllocAndQueryString WdfUsbTargetDeviceCreate WdfUsbTargetDeviceCyclePortSynchronouslyWdfUsbTargetDeviceFormatRequestForControlTransferWdfUsbTargetDeviceFormatRequestForCyclePortWdfUsbTargetDeviceFormatRequestForStringWdfUsbTargetDeviceFormatRequestForUrbWdfUsbTarDeviceGetDeviceDescriptorWdfUsbTargetDeviceGetInterfaceWdfUsbTargetDeviceGetNumInterfacesWdfUsbTargetDeviceIsConnectedSynchronousWdfUsbTargetDeviceQueryStringWdfUsbTargetDeviceResetPortSynchronouslyWdfUsbTargetDeviceRetrieveConfigDescriptorWdfUsbTargetDeviceRetrieveCurrentFrameNumberWdfUsbTargetDeviceRetrieveInformationWdfUsbTargetDeviceSelectConfigWdfUsbTargetDeviceSendControlTransferSynchronouslyWdfUsbTargetDeviceSendUrbSynchronouslyWdfUsbTargetDeviceWdmGetConfigurationHandleWdfUsbTargetPipeAbortSynchronouslyWdfUsbTargetPipeConfigContinuousReaderWdfUsbTargetPipeFormatRequestForAbortWdfUsbTargetPipeFormatRequestForReadWdfUsbUsbTargetPipeFormatRequestForResetWdfUsbTargetPipeFormatRequestForUrbWdfUsbTargetPipeFormatRequestForWriteWdfUsbTargetPipeGetInformationWdfUsbTargetPipeGetTypeWdfUsbTargetPipeIsInEndpointWdfUsbTargetPipeIsOutEndpointWdfUsbTargetPipeReadSynchronouslyWdfUsbTargetPipeResetSynchronouslyWdfUsbTargetPipeSendUrbSyncWdfUsbTargetPipeSetNoMaximumPacketSizeCheckWdfUsbTargetPipeWdmGetPipeHandleWdfUsbTargetPipePipeWriteSynchronouslyWdfWaitLockAcquireWdfWaitLockCreateWdfWaitLockReleaseWdfWdmDeviceGetWdfDeviceHandle WdfWmiInstanceCreate WdfWmiInstanceDeregister WdfWmiInstanceFireEvent WdfWmiInstanceGetDevice WdfWmiInstanceGetProvider WdfWmiInstanceRegister WdfWmiProviderCreate WdfWmiProviderGetDevice WdfWmiProviderGetTracingHandle WdfWmiProviderIsEnabled WdfWorkItemCreateWdfWorkItemEnqueueWdfWorkItemFlushWdfWorkItemGetParentObjectPAGED_CODE