Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ряд полезных макросов определяются в файлах заголовков пакета драйверов окон (WDK), которые вызывают эти подпрограммы RDBSS или другие подпрограммы ядра. Некоторые из этих макросов обычно используются вместо вызова подпрограмм RDBSS напрямую. Некоторые из этих макросов используются в качестве удобных подпрограмм.
Следующие макросы определяются RDBSS.
| Macro | Description |
|---|---|
RxAcquirePrefixTableLockExclusive (TABLE, WAIT) |
Этот макрос получает блокировку таблицы префикса в монопольном режиме для операций изменения. |
RxAcquirePrefixTableLockShared (TABLE, WAIT) |
Этот макрос получает блокировку таблицы префикса в общем режиме для операций подстановки. |
RxAllocatePoolWithTag (type, size, tag) |
При проверенных сборках этот макрос выделяет память из пула с тегом четырехбайтов в начале блока, который можно использовать для перехвата экземпляров корзины памяти. On retail builds, this macro becomes a direct call to ExAllocatePoolWithTag. |
RxCheckMemoryBlock (ptr) |
При проверенных сборках этот макрос проверяет блок памяти для специальной подписи заголовка RX_POOL_HEADER. В розничных версиях этот макрос ничего не делает. |
RxDereferenceAndFinalizeNetFcb (Fcb ,RxContext, RecursiveFinalize, ForceFinalize) |
Этот макрос используется для отслеживания операций деконференции в структурах FCB. Обратите внимание, что этот макрос управляет счетчиком ссылок, а также возвращает состояние окончательного вызова разыменования. |
RxDereferenceNetFcb (Fcb) |
Этот макрос используется для отслеживания операций деконференции в структурах FCB. Обратите внимание, что этот макрос управляет счетчиком ссылок, а также возвращает состояние окончательного вызова разыменования. |
RxDereferenceNetFobx (Fobx,LockHoldingState) |
Этот макрос используется для отслеживания операций деконференции в структурах FOBX. |
RxDereferenceNetRoot (NetRoot, LockHoldingState) |
Этот макрос используется для отслеживания операций деконференции в NET_ROOT структурах. |
RxDereferenceSrvCall (SrvCall, LockHoldingState) |
Этот макрос используется для отслеживания операций деконференции в SRV_CALL структурах. |
RxDereferenceSrvOpen ( SrvOpen, LockHoldingState) |
Этот макрос используется для отслеживания операций деконференции в структурах SRV_OPEN. |
RxDereferenceVNetRoot ( VNetRoot, LockHoldingState) |
Этот макрос используется для отслеживания операций деконференции в структурах V_NET_ROOT. |
RxFcbAcquiredShared (RXCONTEXT, FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем режиме. This macro calls the ExIsResourceAcquiredSharedLite routine. |
RxFillAndInstallFastIoDispatch(__devobj, __fastiodisp) |
This macro calls __RxFillAndInstallFastIoDispatch to fill out a fast I/O dispatch vector to be identical with the normal dispatch I/O vector and installs it into the driver object associated with the device object passed. |
RxFreePool (ptr) |
При проверке сборки этот макрос освобождает пул памяти. On retail builds, this macro becomes a direct call to ExFreePool. |
RxIsFcbAcquiredShared (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем режиме. This macro calls the ExIsResourceAcquiredSharedLite routine. |
RxIsFcbAcquiredExclusive (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в монопольном режиме. This macro calls the ExIsResourceAcquiredExclusiveLite routine. |
RxIsFcbAcquired (FCB) |
Этот макрос проверяет, имеет ли текущий поток доступ к регулярному ресурсу в общем или монопольном режиме. This macro calls the ExIsResourceAcquiredSharedLite and ExIsResourceAcquiredExclusiveLite routines. |
RxIsPrefixTableLockAcquired (TABLE) |
Этот макрос указывает, была ли блокировка таблицы префикса получена в монопольном или общем режиме. |
RxIsPrefixTableLockExclusive (TABLE) |
Этот макрос указывает, была ли блокировка таблицы префикса приобретена в монопольном режиме. |
RxLog(Args) |
On checked builds, this macro calls the _RxLog routine. В розничных версиях этот макрос ничего не делает. Note that the arguments to RxLog must be enclosed with an additional pair of parenthesis to enable translation into a null call when logging should be turned off. |
RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status) |
This macro calls the RxLogEventDirect routine. |
RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status) |
This macro calls the RxLogEventDirect routine. |
RxLogFailureWithBuffer (_DeviceObject, _OriginatorId, _EventId, _Status, _Buffer, _Length) |
This macro calls the RxLogEventWithBufferDirect routine. |
RxLogRetail(Args) |
On checked builds, this macro calls the _RxLog routine. В розничных версиях этот макрос ничего не делает. Note that the arguments to RxLogRetail must be enclosed with an additional pair of parenthesis to enable translation into a null call when logging should be turned off. |
RxReferenceNetFcb (Fcb) |
Этот макрос используется для отслеживания ссылочных операций в структурах FCB. |
RxReferenceNetFobx (Fobx) |
Этот макрос используется для отслеживания ссылочных операций в структурах FOBX. Журнал этих ссылочных операций можно получить с помощью системы ведения журнала и WMI. |
RxReferenceNetRoot (NetRoot) |
Этот макрос используется для отслеживания ссылочных операций в структурах NET_ROOT. Журнал этих ссылочных операций можно получить с помощью системы ведения журнала и инструментария управления Windows (WMI). |
RxReferenceSrvCall (SrvCall) |
Этот макрос используется для отслеживания ссылочных операций на SRV_CALL структурах, которые не находятся на уровне отложенного вызова процедур (DPC). |
RxReferenceSrvCallAtDpc (SrvCall) |
Этот макрос используется для отслеживания ссылочных операций на SRV_CALL структурах на уровне DPC. |
RxReferenceSrvOpen (SrvOpen) |
Этот макрос используется для отслеживания ссылочных операций в структурах SRV_OPEN. |
RxReferenceVNetRoot (VNetRoot) |
Этот макрос используется для отслеживания ссылочных операций в структурах V_NET_ROOT. |
RxReleasePrefixTableLock (TABLE) |
Этот макрос освобождает блокировку таблицы префикса. |
RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE) |
Этот макрос синхронизирует блокирующие запросы ввода-вывода в ту же рабочую очередь. On Windows Server 2003, this macro calls the __RxSynchronizeBlockingOperations routine with the DropFcbLock parameter set to FALSE. On Windows XP and Windows 2000, this macro calls the __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock routine with the DropFcbLock parameter set to FALSE. |
RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE) |
Этот макрос синхронизирует блокирующие запросы ввода-вывода в ту же рабочую очередь. On Windows Server 2003, this macro calls the __RxSynchronizeBlockingOperations routine with the DropFcbLock parameter set to TRUE. On Windows XP and Windows 2000, this macro calls the __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock routine with the DropFcbLock parameter set to TRUE. |