Compartir a través de


Macros definidas por RDBSS

Varias macros útiles se definen en los archivos de encabezado del Kit de controladores de ventanas (WDK) que llaman a estas rutinas RDBSS u otras rutinas de kernel. Algunas de estas macros se usan normalmente en lugar de llamar directamente a las rutinas RDBSS. Algunas de estas macros se usan como rutinas de conveniencia.

Las macros siguientes se definen mediante RDBSS.

Macro Descripción

RxAcquirePrefixTableLockExclusive (TABLE, WAIT)

Esta macro adquiere el bloqueo de tabla de prefijo en modo exclusivo para las operaciones de cambio.

RxAcquirePrefixTableLockShared (TABLE, WAIT)

Esta macro adquiere el bloqueo de tabla de prefijo en modo compartido para las operaciones de búsqueda.

RxAllocatePoolWithTag (tipo, tamaño, etiqueta)

En las compilaciones activadas, esta macro asigna memoria de un grupo con una etiqueta de cuatro bytes al principio del bloque que se puede usar para detectar instancias de la papelera de memoria.

En las compilaciones comerciales, esta macro se convierte en una llamada directa a ExAllocatePoolWithTag.

RxCheckMemoryBlock (ptr)

En las compilaciones activadas, esta macro comprueba un bloque de memoria para una firma de encabezado RX_POOL_HEADER especial.

En las compilaciones comerciales, esta macro no hace nada.

RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferenciación en estructuras FCB.

Tenga en cuenta que esta macro manipula el recuento de referencias y también devuelve el estado de la llamada de desreferencia final.

RxDereferenceNetFcb (Fcb)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferenciación en estructuras FCB.

Tenga en cuenta que esta macro manipula el recuento de referencias y también devuelve el estado de la llamada de desreferencia final.

RxDereferenceNetFobx (Fobx,LockHoldingState)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferenciación en estructuras FOBX.

RxDereferenceNetRoot (NetRoot, LockHoldingState)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferencia en NET_ROOT estructuras.

RxDereferenceSrvCall (SrvCall, LockHoldingState)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferenciación en estructuras SRV_CALL.

RxDereferenceSrvOpen ( SrvOpen, LockHoldingState)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferencia en estructuras SRV_OPEN.

RxDereferenceVNetRoot ( VNetRoot, LockHoldingState)

Esta macro se usa para realizar un seguimiento de las operaciones de desreferencia en estructuras V_NET_ROOT.

RxFcbAcquiredShared (RXCONTEXT, FCB)

Esta macro comprueba si el subproceso actual tiene acceso al recurso normal en modo compartido. Esta macro llama a la rutina ExIsResourceAcquiredSharedLite .

RxFillAndInstallFastIoDispatch(__devobj, __fastiodisp)

Esta macro llama a __RxFillAndInstallFastIoDispatch para rellenar un vector de distribución de E/S rápido para que sea idéntico al vector de E/S de envío normal y lo instala en el objeto de controlador asociado al objeto de dispositivo pasado.

RxFreePool (ptr)

Al comprobar las compilaciones, esta macro libera un grupo de memoria.

En las compilaciones comerciales, esta macro se convierte en una llamada directa a ExFreePool.

RxIsFcbAcquiredShared (FCB)

Esta macro comprueba si el subproceso actual tiene acceso al recurso normal en modo compartido. Esta macro llama a la rutina ExIsResourceAcquiredSharedLite .

RxIsFcbAcquiredExclusive (FCB)

Esta macro comprueba si el subproceso actual tiene acceso al recurso normal en modo exclusivo. Esta macro llama a la rutina ExIsResourceAcquiredExclusiveLite .

RxIsFcbAcquired (FCB)

Esta macro comprueba si el subproceso actual tiene acceso al recurso normal en modo compartido o exclusivo. Esta macro llama a las rutinas ExIsResourceAcquiredSharedLite y ExIsResourceAcquiredExclusiveLite .

RxIsPrefixTableLockAcquired (TABLE)

Esta macro indica si el bloqueo de tabla de prefijo se adquirió en modo exclusivo o compartido.

RxIsPrefixTableLockExclusive (TABLE)

Esta macro indica si el bloqueo de tabla de prefijo se adquirió en modo exclusivo.

RxLog(Args)

En las compilaciones activadas, esta macro llama a la rutina _RxLog .

En las compilaciones comerciales, esta macro no hace nada.

Tenga en cuenta que los argumentos de RxLog se deben incluir con un par de paréntesis adicional para habilitar la traducción en una llamada nula al desactivar el registro.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

Esta macro llama a la rutina RxLogEventDirect .

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

Esta macro llama a la rutina RxLogEventDirect .

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

Esta macro llama a la rutina RxLogEventWithBufferDirect .

RxLogRetail(Args)

En las compilaciones activadas, esta macro llama a la rutina _RxLog .

En las compilaciones comerciales, esta macro no hace nada.

Tenga en cuenta que los argumentos de RxLogRetail se deben incluir con un par de paréntesis adicional para habilitar la traducción en una llamada nula cuando se debe desactivar el registro.

RxReferenceNetFcb (Fcb)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras FCB.

RxReferenceNetFobx (Fobx)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras FOBX. Se puede acceder a un registro de estas operaciones de referencia mediante el sistema de registro y WMI.

RxReferenceNetRoot (NetRoot)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras NET_ROOT. El sistema de registro y el Instrumental de administración de Windows (WMI) pueden acceder a un registro de estas operaciones de referencia.

RxReferenceSrvCall (SrvCall)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras de SRV_CALL que no están en el nivel de llamada a procedimiento diferido (DPC).

RxReferenceSrvCallAtdpc (SrvCall)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras de SRV_CALL en el nivel DPC.

RxReferenceSrvOpen (SrvOpen)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras SRV_OPEN.

RxReferenceVNetRoot (VNetRoot)

Esta macro se usa para realizar un seguimiento de las operaciones de referencia en estructuras V_NET_ROOT.

RxReleasePrefixTableLock (TABLE)

Esta macro libera el bloqueo de la tabla de prefijos.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Esta macro sincroniza el bloqueo de solicitudes de E/S en la misma cola de trabajo. En Windows Server 2003, esta macro llama a la rutina __RxSynchronizeBlockingOperations con el parámetro DropFcbLock establecido en FALSE.

En Windows XP y Windows 2000, esta macro llama a la rutina __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock con el parámetro DropFcbLock establecido en FALSE.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Esta macro sincroniza el bloqueo de solicitudes de E/S en la misma cola de trabajo. En Windows Server 2003, esta macro llama a la rutina __RxSynchronizeBlockingOperations con el parámetro DropFcbLock establecido en TRUE.

En Windows XP y Windows 2000, esta macro llama a la rutina __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock con el parámetro DropFcbLock establecido en TRUE.