PowerIrpDDIs ルール (wdm)

PowerIrpDDIs ルールは、ドライバーがシステムまたはデバイスの IRP_MJ_POWER を IRP_MN_SET_POWER で処理しているときに、PASSIVE_LEVEL でのみ呼び出すことができる DDI を呼び出さないことを指定します。

ドライバーモデル: 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