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:
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