Partager via


Macros définies par RDBSS

Un certain nombre de macros utiles sont définies dans les fichiers d’en-tête WDK (Window Driver Kit) qui appellent ces routines RDBSS ou d’autres routines de noyau. Certaines de ces macros sont normalement utilisées au lieu d’appeler directement les routines RDBSS. Certaines de ces macros sont utilisées comme routines pratiques.

Les macros suivantes sont définies par RDBSS.

Macro Description

RxAcquirePrefixTableLockExclusive (TABLE, WAIT)

Cette macro acquiert le verrou de table préfixe en mode exclusif pour les opérations de modification.

RxAcquirePrefixTableLockShared (TABLE, WAIT)

Cette macro acquiert le verrou de table de préfixe en mode partagé pour les opérations de recherche.

RxAllocatePoolWithTag (type, taille, balise)

Sur les builds vérifiées, cette macro alloue de la mémoire à partir d’un pool avec une balise de quatre octets au début du bloc qui peut être utilisée pour aider à intercepter les instances de corbeille de mémoire.

Sur les builds de vente au détail, cette macro devient un appel direct à ExAllocatePoolWithTag.

RxCheckMemoryBlock (ptr)

Sur les builds vérifiées, cette macro vérifie un bloc de mémoire pour une signature d’en-tête RX_POOL_HEADER spéciale.

Sur les builds de vente au détail, cette macro ne fait rien.

RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize)

Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FCB.

Notez que cette macro manipule le nombre de références et retourne également le status de l’appel de déréférence final.

RxDereferenceNetFcb (Fcb)

Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FCB.

Notez que cette macro manipule le nombre de références et retourne également le status de l’appel de déréférence final.

RxDereferenceNetFobx (Fobx,LockHoldingState)

Cette macro est utilisée pour suivre les opérations de déréférencement sur les structures FOBX.

RxDereferenceNetRoot (NetRoot, LockHoldingState)

Cette macro est utilisée pour suivre les opérations de déréférencement sur NET_ROOT structures.

RxDereferenceSrvCall (SrvCall, LockHoldingState)

Cette macro est utilisée pour suivre les opérations de déréférencement sur SRV_CALL structures.

RxDereferenceSrvOpen ( SrvOpen, LockHoldingState)

Cette macro est utilisée pour suivre les opérations de déréférencement sur SRV_OPEN structures.

RxDereferenceVNetRoot ( VNetRoot, LockHoldingState)

Cette macro est utilisée pour suivre les opérations de déréférencement sur V_NET_ROOT structures.

RxFcbAcquiredShared (RXCONTEXT, FCB)

Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé. Cette macro appelle la routine ExIsResourceAcquiredSharedLite .

RxFillAndInstallFastIoDispatch(__devobj, __fastiodisp)

Cette macro appelle __RxFillAndInstallFastIoDispatch pour remplir un vecteur de répartition d’E/S rapide afin qu’il soit identique au vecteur d’E/S de répartition normal et l’installe dans l’objet pilote associé à l’objet d’appareil passé.

RxFreePool (ptr)

Sur les builds vérifiées, cette macro libère un pool de mémoire.

Sur les builds de vente au détail, cette macro devient un appel direct à ExFreePool.

RxIsFcbAcquiredShared (FCB)

Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé. Cette macro appelle la routine ExIsResourceAcquiredSharedLite .

RxIsFcbAcquiredExclusive (FCB)

Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode exclusif. Cette macro appelle la routine ExIsResourceAcquiredExclusiveLite .

RxIsFcbAcquired (FCB)

Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé ou exclusif. Cette macro appelle les routines ExIsResourceAcquiredSharedLite et ExIsResourceAcquiredExclusiveLite .

RxIsPrefixTableLockAcquired (TABLE)

Cette macro indique si le verrou de table de préfixe a été acquis en mode exclusif ou partagé.

RxIsPrefixTableLockExclusive (TABLE)

Cette macro indique si le verrou de table de préfixe a été acquis en mode exclusif.

RxLog(Args)

Sur les builds vérifiées, cette macro appelle la routine _RxLog .

Sur les builds de vente au détail, cette macro ne fait rien.

Notez que les arguments de RxLog doivent être entourés d’une paire supplémentaire de parenthèses pour permettre la traduction en appel null lorsque la journalisation doit être désactivée.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

Cette macro appelle la routine RxLogEventDirect .

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

Cette macro appelle la routine RxLogEventDirect .

RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length)

Cette macro appelle la routine RxLogEventWithBufferDirect .

RxLogRetail(Args)

Sur les builds vérifiées, cette macro appelle la routine _RxLog .

Sur les builds de vente au détail, cette macro ne fait rien.

Notez que les arguments de RxLogRetail doivent être entourés d’une paire supplémentaire de parenthèses pour permettre la traduction en appel null lorsque la journalisation doit être désactivée.

RxReferenceNetFcb (Fcb)

Cette macro est utilisée pour suivre les opérations de référence sur les structures FCB.

RxReferenceNetFobx (Fobx)

Cette macro est utilisée pour suivre les opérations de référence sur les structures FOBX. Un journal de ces opérations de référence est accessible par le système de journalisation et WMI.

RxReferenceNetRoot (NetRoot)

Cette macro est utilisée pour suivre les opérations de référence sur NET_ROOT structures. Un journal de ces opérations de référence est accessible par le système de journalisation et Windows Management Instrumentation (WMI).

RxReferenceSrvCall (SrvCall)

Cette macro est utilisée pour suivre les opérations de référence sur SRV_CALL structures qui ne sont pas au niveau de l’appel de procédure différée (DPC).

RxReferenceSrvCallAtDpc (SrvCall)

Cette macro est utilisée pour suivre les opérations de référence sur SRV_CALL structures au niveau DPC.

RxReferenceSrvOpen (SrvOpen)

Cette macro est utilisée pour suivre les opérations de référence sur SRV_OPEN structures.

RxReferenceVNetRoot (VNetRoot)

Cette macro est utilisée pour suivre les opérations de référence sur V_NET_ROOT structures.

RxReleasePrefixTableLock (TABLE)

Cette macro libère le verrou de table de préfixe.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Cette macro synchronise les demandes d’E/S bloquantes dans la même file d’attente de travail. Sur Windows Server 2003, cette macro appelle la routine __RxSynchronizeBlockingOperations avec le paramètre DropFcbLock défini sur FALSE.

Sur Windows XP et Windows 2000, cette macro appelle la routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock avec le paramètre DropFcbLock défini sur FALSE.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Cette macro synchronise les demandes d’E/S bloquantes dans la même file d’attente de travail. Sur Windows Server 2003, cette macro appelle la routine __RxSynchronizeBlockingOperations avec le paramètre DropFcbLock défini sur TRUE.

Sur Windows XP et Windows 2000, cette macro appelle la routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock avec le paramètre DropFcbLock défini sur TRUE.