Driver Annotations
Driver annotations enhance the ability of PFD to find some very specific types of errors in driver source code. Driver annotations are intended to complement the general-purpose annotations. The driver annotations are defined in Driverspecs.h and begin with the prefix __drv.
Driver annotation | Usage |
---|---|
__drv_at(arg, anno_list) __drv_arg(arg, anno_list)__drv_deref(anno_list) __drv_fun(anno_list) __drv_in(anno_list)__drv_in_deref(anno_list)__drv_out(anno_list)__drv_out_deref(anno_list)__drv_ret(anno_list)__drv_at(expr, anno_list) |
|
__drv_when(cond, anno_list) |
|
__drv_valueIs(list) |
|
__drv_strictTypeMatch(mode)__drv_strictType(typename, mode) |
|
__drv_notPointer__drv_isObjectPointer |
|
__drv_constant__drv_nonConstant |
|
__drv_formatString(kind) |
|
__drv_preferredFunction(name, reason)__drv_reportError(string) |
|
__drv_inTry __drv_notInTry |
|
__drv_allocatesMem(type)__drv_freesMem(type)__drv_aliasesMem |
|
__drv_acquiresResource(kind)__drv_releasesResource(kind)__drv_acquiresResourceGlobal(kind, param)__drv_releasesResourceGlobal(kind, param)__drv_acquiresCriticalRegion__drv_releasesCriticalRegion__drv_acquiresCancelSpinLock__drv_releasesCancelSpinLock__drv_mustHold(kind)__drv_neverHold(kind)__drv_mustHoldGlobal(kind, param)__drv_neverHoldGlobal(kind, param)__drv_mustHoldCriticalRegion__drv_neverHoldCriticalRegion__drv_mustHoldCancelSpinLock__drv_neverHoldCancelSpinLock__drv_acquiresExclusiveResource(kind)__drv_releasesExclusiveResource(kind)__drv_acquiresExclusiveResourceGlobal(kind, param)__drv_releasesExclusiveResourceGlobal(kind, param) |
|
__drv_functionClass |
|
__drv_floatSaved__drv_floatRestored __drv_floatUsed |
|
__drv_maxIRQL(value)__drv_minIRQL(value)__drv_setsIRQL(value)__drv_requiresIRQL(value)__drv_raisesIRQL(value)__drv_savesIRQL__drv_restoresIRQL__drv_savesIRQLGlobal(kind, param)__drv_restoresIRQLGlobal(kind, param)__drv_minFunctionIRQL(value)__drv_maxFunctionIRQL(value)__drv_sameIRQL__drv_isCancelIRQL |
|
__drv_clearDoInit |
|
__drv_interlocked |
Send comments about this topic to Microsoft
Build date: 5/3/2011