PowerIrpDDIs rule (wdm)

PowerIrpDDIs規則指定當驅動程式處理系統或使用 IRP_MN_SET_POWER IRP_MJ_POWER 裝置時,它不應該呼叫只能在 PASSIVE_LEVEL 呼叫的 DDIs。

驅動程式模型: WDM

測試方法

在編譯時期

執行 靜態驅動程式驗證 器,並指定 PowerIrpDDIs 規則。

使用下列步驟來執行程式碼分析:
  1. 準備您的程式碼, (使用) 的角色類型聲明。
  2. 執行靜態驅動程式驗證器。
  3. 查看及分析結果。

如需詳細資訊,請參閱 使用靜態驅動程式驗證器找出驅動程式中的瑕疵

適用於

ExIsProcessorFeaturePresent
ExRaiseAccessViolation
ExRaiseDatatypeMisalignment
ExUuidCreate
HalExamineMBR
HalGetInterruptVector
IoBuildDeviceIoControlRequest
IoBuildSynchronousFsdRequest
IoCheckShareAccess
IoConnectInterrupt
IoCreateController
IoCreateFile
IoCreateSymbolicLink
IoCreateSynchronizationEvent
IoCreateUnprotectedSymbolicLink
IoDeleteController
IoDeleteSymbolicLink
IoDetachDevice
IoDisconnectInterrupt
IoGetConfigurationInformation
IoGetDeviceInterfaceAlias
IoGetDeviceInterfaces
IoGetDeviceNumaNode
IoGetDeviceObjectPointer
IoGetDeviceProperty
IoGetDevicePropertyData
IoGetDmaAdapter
IoGetFileObjectGenericMapping
IoInitializeTimer
IoIsWdmVersionAvailable
IoOpenDeviceInterfaceRegistryKey
IoOpenDeviceRegistryKey
IoRegisterBootDriverReinitialization
IoRegisterDeviceInterface
IoRegisterDriverReinitialization
IoRegisterLastChanceShutdownNotification
IoRegisterPlugPlayNotification
IoRegisterShutdownNotification
IoRemoveShareAccess
IoReportDetectedDevice
IoReportTargetDeviceChange
IoSetDeviceInterfaceState
IoSetDevicePropertyData
IoUnregisterPlugPlayNotification
IoUnregisterPlugPlayNotificationEx
IoUnregisterShutdownNotification
IoUpdateShareAccess
IoWMIAllocateInstanceIds
IoWMIRegistrationControl
KeDelayExecutionThread
KeInitializeSemaphore
KeQueryPriorityThread
KeQueryRuntimeThread
KeRevertToUserAffinityThreadEx
KeSetSystemAffinityThread
KeSetSystemGroupAffinityThread
MmGetSystemRoutineAddress
PsGetVersion
PsRemoveLoadImageNotifyRoutine
PsSetCreateProcessNotifyRoutine
PsSetCreateProcessNotifyRoutineEx
PsSetCreateThreadNotifyRoutine
PsSetLoadImageNotifyRoutine
PsTerminateSystemThread
SeAccessCheck
SeAssignSecurity
SeDeassignSecurity
SeSinglePrivilegeCheck
SeValidSecurityDescriptor
ZwAllocateLocallyUniqueId
ZwAllocateVirtualMemory
ZwClose
ZwCommitComplete
ZwCommitEnlistment
ZwCommitTransaction
ZwCreateDirectoryObject
ZwCreateEnlistment
ZwCreateEvent
ZwCreateFile
ZwCreateKey
ZwCreateKeyTransacted
ZwCreateResourceManager
ZwCreateTransaction
ZwCreateTransactionManager
ZwDeleteFile
ZwDeleteKey
ZwDeleteValueKey
ZwDeviceIoControlFile
ZwDuplicateToken
ZwEnumerateKey
ZwEnumerateTransactionObject
ZwEnumerateValueKey
ZwFlushBuffersFile
ZwFreeVirtualMemory
ZwFsControlFile
ZwGetNotificationResourceManager
ZwLoadDriver
ZwLockFile
ZwMakeTemporaryObject
ZwMapViewOfSection
ZwNotifyChangeKey
ZwOpenDirectoryObject
ZwOpenEnlistment
ZwOpenEvent
ZwOpenFile
ZwOpenKey
ZwOpenKeyEx
ZwOpenKeyTransacted
ZwOpenKeyTransactedEx
ZwOpenProcess
ZwOpenProcessTokenEx
ZwOpenResourceManager
ZwOpenSection
ZwOpenSymbolicLinkObject
ZwOpenThreadTokenEx
ZwOpenTransaction
ZwOpenTransactionManager
ZwPowerInformation
ZwPrepareComplete
ZwPrepareEnlistment
ZwPrePrepareComplete
ZwPrePrepareEnlistment
ZwQueryDirectoryFile
ZwQueryEaFile
ZwQueryFullAttributesFile
ZwQueryInformationEnlistment
ZwQueryInformationFile
ZwQueryInformationResourceManager
ZwQueryInformationToken
ZwQueryInformationTransaction
ZwQueryInformationTransactionManager
ZwQueryKey
ZwQueryObject
ZwQueryQuotaInformationFile
ZwQuerySecurityObject
ZwQuerySymbolicLinkObject
ZwQueryValueKey
ZwQueryVolumeInformationFile
ZwReadFile
ZwReadOnlyEnlistment
ZwRecoverEnlistment
ZwRecoverTransactionManager
ZwRollbackComplete
ZwRollbackEnlistment
ZwRollbackTransaction
ZwRollforwardTransactionManager
ZwSetEaFile
ZwSetInformationEnlistment
ZwSetInformationFile
ZwSetInformationThread
ZwSetInformationToken
ZwSetInformationTransaction
ZwSetQuotaInformationFile
ZwSetSecurityObject
ZwSetValueKey
ZwSetVolumeInformationFile
ZwSinglePhaseReject
ZwTerminateProcess
ZwUnloadDriver
ZwUnlockFile
ZwUnmapViewOfSection
ZwWriteFile