Freigeben über


Von RDBSS definierte Makros

Eine Reihe nützlicher Makros sind in den WDK-Headerdateien (Window Driver Kit) definiert, die diese RDBSS-Routinen oder andere Kernelroutinen aufrufen. Einige dieser Makros werden normalerweise verwendet, anstatt die RDBSS-Routinen direkt aufzurufen. Einige dieser Makros werden als Komfortroutinen verwendet.

Die folgenden Makros werden von RDBSS definiert.

Makro Beschreibung

RxAcquirePrefixTableLockExclusive (TABLE, WAIT)

Dieses Makro ruft die Präfixtabellensperre im exklusiven Modus für Änderungsvorgänge ab.

RxAcquirePrefixTableLockShared (TABLE, WAIT)

Dieses Makro ruft die Präfixtabellensperre im freigegebenen Modus für Nachschlagevorgänge ab.

RxAllocatePoolWithTag (type, size, tag)

Bei überprüften Builds ordnet dieses Makro Speicher aus einem Pool mit einem Vier-Byte-Tag am Anfang des Blocks zu, das verwendet werden kann, um Instanzen von Speicherkorb zu erfassen.

Bei Einzelhandelsbuilds wird dieses Makro zu einem direkten Aufruf von ExAllocatePoolWithTag.

RxCheckMemoryBlock (ptr)

Bei überprüften Builds überprüft dieses Makro einen Speicherblock auf eine spezielle RX_POOL_HEADER Headersignatur.

Bei Einzelhandelsbuilds macht dieses Makro nichts.

RxDereferenceAndFinalizeNetFcb (Fcb , RxContext, RecursiveFinalize, ForceFinalize)

Dieses Makro wird verwendet, um Dereferencevorgänge in FCB-Strukturen nachzuverfolgen.

Beachten Sie, dass dieses Makro die Verweisanzahl bearbeitet und auch die status des letzten Dereference-Aufrufs zurückgibt.

RxDereferenceNetFcb (Fcb)

Dieses Makro wird verwendet, um Dereferencevorgänge in FCB-Strukturen nachzuverfolgen.

Beachten Sie, dass dieses Makro die Verweisanzahl bearbeitet und auch die status des letzten Dereference-Aufrufs zurückgibt.

RxDereferenceNetFobx (Fobx,LockHoldingState)

Dieses Makro wird verwendet, um Dereferencevorgänge auf FOBX-Strukturen nachzuverfolgen.

RxDereferenceNetRoot (NetRoot, LockHoldingState)

Dieses Makro wird verwendet, um Dereferencevorgänge für NET_ROOT Strukturen nachzuverfolgen.

RxDereferenceSrvCall (SrvCall, LockHoldingState)

Dieses Makro wird verwendet, um Dereferencevorgänge für SRV_CALL Strukturen nachzuverfolgen.

RxDereferenceSrvOpen ( SrvOpen, LockHoldingState)

Dieses Makro wird verwendet, um Dereferencevorgänge für SRV_OPEN Strukturen nachzuverfolgen.

RxDereferenceVNetRoot ( VNetRoot, LockHoldingState)

Dieses Makro wird verwendet, um Dereferencevorgänge für V_NET_ROOT Strukturen nachzuverfolgen.

RxFcbAcquiredShared (RXCONTEXT, FCB)

Dieses Makro überprüft, ob der aktuelle Thread zugriff auf die reguläre Ressource im freigegebenen Modus hat. Dieses Makro ruft die ExIsResourceAcquiredSharedLite-Routine auf.

RxFillAndInstallFastIoDispatch(__devobj, __fastiodisp)

Dieses Makro ruft __RxFillAndInstallFastIoDispatch auf, um einen schnellen E/A-Verteilungsvektor auszufüllen, der mit dem normalen E/A-Vektor identisch ist, und installiert ihn in das Treiberobjekt, das dem übergebenen Geräteobjekt zugeordnet ist.

RxFreePool (ptr)

Bei aktivierten Builds gibt dieses Makro einen Speicherpool frei.

Bei Einzelhandelsbuilds wird dieses Makro zu einem direkten Aufruf von ExFreePool.

RxIsFcbAcquiredShared (FCB)

Dieses Makro überprüft, ob der aktuelle Thread zugriff auf die reguläre Ressource im freigegebenen Modus hat. Dieses Makro ruft die ExIsResourceAcquiredSharedLite-Routine auf.

RxIsFcbAcquiredExclusive (FCB)

Dieses Makro überprüft, ob der aktuelle Thread zugriff auf die reguläre Ressource im exklusiven Modus hat. Dieses Makro ruft die ExIsResourceAcquiredExclusiveLite-Routine auf.

RxIsFcbAcquired (FCB)

Dieses Makro überprüft, ob der aktuelle Thread zugriff auf die reguläre Ressource im freigegebenen oder exklusiven Modus hat. Dieses Makro ruft die Routinen ExIsResourceAcquiredSharedLite und ExIsResourceAcquiredExclusiveLite auf.

RxIsPrefixTableLockAcquired (TABLE)

Dieses Makro gibt an, ob die Präfixtabellensperre entweder im exklusiven oder im freigegebenen Modus abgerufen wurde.

RxIsPrefixTableLockExclusive (TABLE)

Dieses Makro gibt an, ob die Präfixtabellensperre im exklusiven Modus abgerufen wurde.

RxLog(Args)

Bei überprüften Builds ruft dieses Makro die _RxLog Routine auf.

Bei Einzelhandelsbuilds macht dieses Makro nichts.

Beachten Sie, dass die Argumente für RxLog mit einem zusätzlichen Paar von Klammern versehen werden müssen, um die Übersetzung in einen NULL-Aufruf zu ermöglichen, wenn die Protokollierung deaktiviert werden soll.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

Dieses Makro ruft die RxLogEventDirect-Routine auf.

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

Dieses Makro ruft die RxLogEventDirect-Routine auf.

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

Dieses Makro ruft die RxLogEventWithBufferDirect-Routine auf.

RxLogRetail(Args)

Bei überprüften Builds ruft dieses Makro die _RxLog Routine auf.

Bei Einzelhandelsbuilds macht dieses Makro nichts.

Beachten Sie, dass die Argumente für RxLogRetail mit einem zusätzlichen Paar von Klammern eingeschlossen werden müssen, um die Übersetzung in einen NULL-Aufruf zu aktivieren, wenn die Protokollierung deaktiviert werden soll.

RxReferenceNetFcb (Fcb)

Dieses Makro wird verwendet, um Verweisvorgänge in FCB-Strukturen nachzuverfolgen.

RxReferenceNetFobx (Fobx)

Dieses Makro wird verwendet, um Verweisvorgänge in FOBX-Strukturen nachzuverfolgen. Auf ein Protokoll dieser Verweisvorgänge kann das Protokollierungssystem und WMI zugreifen.

RxReferenceNetRoot (NetRoot)

Dieses Makro wird verwendet, um Verweisvorgänge auf NET_ROOT Strukturen nachzuverfolgen. Auf ein Protokoll dieser Verweisvorgänge kann das Protokollierungssystem und die Windows-Verwaltungsinstrumentation (WMI) zugreifen.

RxReferenceSrvCall (SrvCall)

Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_CALL Strukturen nachzuverfolgen, die sich nicht auf DPC-Ebene (Deferred Procedure Call) befinden.

RxReferenceSrvCallAtDpc (SrvCall)

Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_CALL Strukturen auf DPC-Ebene nachzuverfolgen.

RxReferenceSrvOpen (SrvOpen)

Dieses Makro wird verwendet, um Verweisvorgänge auf SRV_OPEN Strukturen nachzuverfolgen.

RxReferenceVNetRoot (VNetRoot)

Dieses Makro wird verwendet, um Verweisvorgänge auf V_NET_ROOT Strukturen nachzuverfolgen.

RxReleasePrefixTableLock (TABLE)

Dieses Makro gibt die Präfixtabellensperre frei.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Dieses Makro synchronisiert blockierende E/A-Anforderungen mit derselben Arbeitswarteschlange. Unter Windows Server 2003 ruft dieses Makro die __RxSynchronizeBlockingOperations Routine auf, wobei der DropFcbLock-Parameter auf FALSE festgelegt ist.

Unter Windows XP und Windows 2000 ruft dieses Makro die __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock Routine auf, wobei der DropFcbLock-Parameter auf FALSE festgelegt ist.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

Dieses Makro synchronisiert blockierende E/A-Anforderungen mit derselben Arbeitswarteschlange. Unter Windows Server 2003 ruft dieses Makro die __RxSynchronizeBlockingOperations-Routine auf, wobei der DropFcbLock-Parameter auf TRUE festgelegt ist.

Unter Windows XP und Windows 2000 ruft dieses Makro die __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock Routine auf, wobei der DropFcbLock-Parameter auf TRUE festgelegt ist.