HwStorPortProhibitedDDIs rule (storport)

This rule contains a list of WDM DDIs (excluding interlocked functions) that should not be called in physical StorPort miniport drivers.

Driver model Storport

How to test

At compile time

Run Static Driver Verifier and specify the HwStorPortProhibitedDDIs rule.

Use the following steps to run an analysis of your code:
  1. Prepare your code (use role type declarations).
  2. Run Static Driver Verifier.
  3. View and analyze the results.

For more information, see Using Static Driver Verifier to Find Defects in Drivers.

Applies to

IoReadPartitionTable IoReadPartitionTableEx IoSetPartitionInformation IoSetPartitionInformationEx IoWritePartitionTable IoWritePartitionTableEx CmRegisterCallback CmRegisterCallbackEx CmUnRegisterCallback ExAcquireFastMutex ExAcquireFastMutexUnsafe ExAcquireResourceExclusiveLite ExAcquireResourceSharedLite ExAcquireRundownProtection ExAcquireRundownProtectionEx ExAcquireSharedStarveExclusive ExAcquireSharedWaitForExclusive ExAllocatePool ExAllocatePoolWithQuota ExAllocatePoolWithQuotaTag ExAllocatePoolWithTag ExAllocatePoolWithTagPriority ExConvertExclusiveToSharedLite ExCreateCallback ExDeletePagedLookasideList ExDeleteResourceLite ExEnterCriticalRegionAndAcquireResourceExclusive ExGetExclusiveWaiterCount ExGetSharedWaiterCount ExInitializePagedLookasideList ExInitializeResource ExInitializeResourceLite ExIsProcessorFeaturePresent ExIsResourceAcquired ExIsResourceAcquiredExclusive ExIsResourceAcquiredExclusiveLite ExIsResourceAcquiredLite ExIsResourceAcquiredShared ExIsResourceAcquiredSharedLite ExRaiseAccessViolation ExRaiseDatatypeMisalignment ExRaiseStatus ExRegisterCallback ExReinitializeResourceLite ExReleaseFastMutex ExReleaseFastMutexUnsafe ExReleaseResourceAndLeaveCriticalRegion ExReleaseResourceForThreadLite ExReleaseResourceLite ExReleaseRundownProtection ExReleaseRundownProtectionEx ExSetResourceOwnerPointer ExSetResourceOwnerPointerEx ExSetTimerResolution ExTryToAcquireFastMutex ExUnregisterCallback ExUuidCreate ExWaitForRundownProtectionRelease HalExamineMBR HalGetInterruptVector IoAcquireCancelSpinLock IoAllocateController IoAllocateIrp IoAssignArcName IoAttachDevice IoAttachDeviceToDeviceStack IoBuildAsynchronousFsdRequest IoBuildDeviceIoControlRequest IoBuildSynchronousFsdRequest IoCallDriver IoCancelIrp IoCheckShareAccess IoCompleteRequest IoConnectInterrupt IoConnectInterruptEx IoCreateController IoCreateDevice IoCreateDeviceSecure IoCreateFile IoCreateNotificationEvent IoCreateSymbolicLink IoCreateSynchronizationEvent IoCreateUnprotectedSymbolicLink IoDeassignArcName IoDeleteController IoDeleteDevice IoDeleteSymbolicLink IoDetachDevice IoDisconnectInterrupt IoFreeController IoFreeIrp IoGetAttachedDeviceReference IoGetConfigurationInformation IoGetDeviceInterfaceAlias IoGetDeviceInterfaces IoGetDeviceNumaNode IoGetDeviceObjectPointer IoGetDeviceProperty IoGetDevicePropertyData IoGetDmaAdapter IoGetFileObjectGenericMapping IoGetInitialStack IoInitializeIrp IoInitializeTimer IoInvalidateDeviceRelations IoIsWdmVersionAvailable IoOpenDeviceInterfaceRegistryKey IoOpenDeviceRegistryKey IoRaiseHardError IoRaiseInformationalHardError IoRegisterBootDriverReinitialization IoRegisterDeviceInterface IoRegisterDriverReinitialization IoRegisterLastChanceShutdownNotification IoRegisterPlugPlayNotification IoRegisterShutdownNotification IoReleaseCancelSpinLock IoRemoveShareAccess IoReportDetectedDevice IoReportTargetDeviceChange IoReportTargetDeviceChangeAsynchronous IoReuseIrp IoSetCompletionRoutineEx IoSetDeviceInterfaceState IoSetDevicePropertyData IoSetShareAccess IoSetStartIoAttributes IoStartNextPacket IoUnregisterPlugPlayNotification IoUnregisterPlugPlayNotificationEx IoUnregisterShutdownNotification IoUpdateShareAccess IoWMIAllocateInstanceIds IoWMIRegistrationControl KeAcquireGuardedMutex KeAcquireGuardedMutexUnsafe KeAcquireInStackQueuedSpinLock KeAcquireInStackQueuedSpinLockAtDpcLevel KeAcquireInStackQueuedSpinLockForDpc KeAcquireInterruptSpinLock KeAcquireSpinLock KeAcquireSpinLockAtDpcLevel KeAcquireSpinLockForDpc KeAcquireSpinLockRaiseToDpc KeAreAllApcsDisabled KeAreApcsDisabled KeCancelTimer KeClearEvent KeDelayExecutionThread KeDeregisterNmiCallback KeEnterCriticalRegion KeEnterGuardedRegion KeFlushQueuedDpcs KeGetCurrentIrql KeInitializeDeviceQueue KeInitializeEvent KeInitializeGuardedMutex KeInitializeMutex KeInitializeSemaphore KeInitializeSpinLock KeInitializeTimer KeInitializeTimerEx KeInsertByKeyDeviceQueue KeInsertDeviceQueue KeInsertQueueDpc KeLeaveCriticalRegion KeLeaveGuardedRegion KeLowerIrql KePulseEvent KeQueryActiveProcessors KeQueryPriorityThread KeQueryRuntimeThread KeRaiseIrql KeRaiseIrqlToDpcLevel KeReadStateEvent KeReadStateMutex KeReadStateSemaphore KeReadStateTimer KeRegisterNmiCallback KeReleaseGuardedMutex KeReleaseGuardedMutexUnsafe KeReleaseInStackQueuedSpinLock KeReleaseInStackQueuedSpinLockForDpc KeReleaseInStackQueuedSpinLockFromDpcLevel KeReleaseInterruptSpinLock KeReleaseMutex KeReleaseSemaphore KeReleaseSpinLock KeReleaseSpinLockForDpc KeReleaseSpinLockFromDpcLevel KeRemoveByKeyDeviceQueue KeRemoveDeviceQueue KeRemoveEntryDeviceQueue KeRemoveQueueDpc KeResetEvent KeRevertToUserAffinityThreadEx KeSaveFloatingPointState KeSetEvent KeSetSystemAffinityThread KeSetSystemGroupAffinityThread KeSetTimer KeSetTimerEx KeTestSpinLock KeTryToAcquireGuardedMutex KeTryToAcquireSpinLockAtDpcLevel KeWaitForMultipleObjects KeWaitForMutexObject KeWaitForSingleObject MmAllocateNonCachedMemory MmAllocatePagesForMdl MmFreeContiguousMemory MmFreeNonCachedMemory MmFreePagesFromMdl MmGetSystemRoutineAddress MmLockPagableDataSection MmLockPagableSectionByHandle MmMapLockedPages MmMapLockedPagesSpecifyCache MmMapLockedPagesWithReservedMapping MmPageEntireDriver MmProbeAndLockPages MmResetDriverPaging MmSecureVirtualMemory MmUnlockPagableImageSection MmUnlockPages MmUnmapLockedPages MmUnsecureVirtualMemory ObDereferenceObject ObDereferenceObjectWithTag ObGetObjectSecurity ObReferenceObject ObReferenceObjectByHandle ObReferenceObjectByHandleWithTag ObReferenceObjectByPointer ObReferenceObjectByPointerWithTag ObReferenceObjectWithTag ObReleaseObjectSecurity PoCallDriver PoRequestPowerIrp ProbeForRead ProbeForWrite PsCreateSystemThread PsGetVersion PsRemoveLoadImageNotifyRoutine PsSetCreateProcessNotifyRoutine PsSetCreateProcessNotifyRoutineEx PsSetCreateThreadNotifyRoutine PsSetLoadImageNotifyRoutine PsTerminateSystemThread RtlDeleteRegistryValue SeAccessCheck SeAssignSecurity SeAssignSecurityEx 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 ZwFlushKey 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 ZwWaitForSingleObject ZwWriteFile

Send comments about this topic to Microsoft