다음을 통해 공유


RDBSS에서 정의한 매크로

이러한 RDBSS 루틴 또는 기타 커널 루틴을 호출하는 WDK(창 드라이버 키트) 헤더 파일에 많은 유용한 매크로가 정의되어 있습니다. 이러한 매크로 중 일부는 RDBSS 루틴을 직접 호출하는 대신 일반적으로 사용됩니다. 이러한 매크로 중 일부는 편리한 루틴으로 사용됩니다.

RDBSS에서 정의한 매크로는 다음과 같습니다.

매크로 Description

RxAcquirePrefixTableLockExclusive (TABLE, WAIT)

이 매크로는 변경 작업에 대한 배타적 모드에서 접두사 테이블 잠금을 획득합니다.

RxAcquirePrefixTableLockShared (TABLE, WAIT)

이 매크로는 조회 작업을 위해 공유 모드에서 접두사 테이블 잠금을 획득합니다.

RxAllocatePoolWithTag (type, size, tag)

확인된 빌드에서 이 매크로는 블록의 시작 부분에 4 바이트 태그가 있는 풀에서 메모리를 할당하여 메모리 휴지통 인스턴스를 catch하는 데 사용할 수 있습니다.

소매 빌드에서 이 매크로는 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)

이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다.

RxFillAndInstallFastIoDispatch(__devobj, __fastiodisp)

이 매크로는 __RxFillAndInstallFastIoDispatch 호출하여 일반 디스패치 I/O 벡터와 동일한 빠른 I/O 디스패치 벡터를 채우고 전달된 디바이스 개체와 연결된 드라이버 개체에 설치합니다.

RxFreePool (ptr)

확인된 빌드에서 이 매크로는 메모리 풀을 해제합니다.

소매 빌드에서 이 매크로는 ExFreePool에 대한 직접 호출이 됩니다.

RxIsFcbAcquiredShared (FCB)

이 매크로는 현재 스레드가 공유 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 루틴을 호출합니다.

RxIsFcbAcquiredExclusive (FCB)

이 매크로는 현재 스레드가 배타적 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredExclusiveLite 루틴을 호출합니다.

RxIsFcbAcquired (FCB)

이 매크로는 현재 스레드가 공유 모드 또는 배타적 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLiteExIsResourceAcquiredExclusiveLite 루틴을 호출합니다.

RxIsPrefixTableLockAcquired (TABLE)

이 매크로는 접두사 테이블 잠금이 배타적 또는 공유 모드에서 획득되었는지 여부를 나타냅니다.

RxIsPrefixTableLockExclusive (TABLE)

이 매크로는 접두사 테이블 잠금이 배타적 모드에서 획득되었는지를 나타냅니다.

RxLog(Args)

확인된 빌드에서 이 매크로는 _RxLog 루틴을 호출합니다.

소매 빌드에서 이 매크로는 아무 작업도 수행하지 않습니다.

로깅을 해제해야 할 때 Null 호출로 변환할 수 있도록 RxLog 에 대한 인수를 추가 괄호 쌍으로 묶어야 합니다.

RxLogEvent (_DeviceObject, _OriginatorId, _EventId, _Status)

이 매크로는 RxLogEventDirect 루틴을 호출합니다.

RxLogFailure (_DeviceObject, _OriginatorId, _EventId, _Status)

이 매크로는 RxLogEventDirect 루틴을 호출합니다.

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

이 매크로는 RxLogEventWithBufferDirect 루틴을 호출합니다.

RxLogRetail(Args)

확인된 빌드에서 이 매크로는 _RxLog 루틴을 호출합니다.

소매 빌드에서 이 매크로는 아무 작업도 수행하지 않습니다.

로깅을 해제해야 할 때 Null 호출로 변환할 수 있도록 RxLogRetail 에 대한 인수를 추가 괄호 쌍으로 묶어야 합니다.

RxReferenceNetFcb (Fcb)

이 매크로는 FCB 구조체에 대한 참조 작업을 추적하는 데 사용됩니다.

RxReferenceNetFobx (Fobx)

이 매크로는 FOBX 구조체에 대한 참조 작업을 추적하는 데 사용됩니다. 이러한 참조 작업의 로그는 로깅 시스템 및 WMI에서 액세스할 수 있습니다.

RxReferenceNetRoot (NetRoot)

이 매크로는 NET_ROOT 구조체에 대한 참조 작업을 추적하는 데 사용됩니다. 이러한 참조 작업의 로그는 로깅 시스템 및 WMI(Windows Management Instrumentation)에서 액세스할 수 있습니다.

RxReferenceSrvCall (SrvCall)

이 매크로는 DPC(지연 프로시저 호출) 수준에 없는 SRV_CALL 구조체에서 참조 작업을 추적하는 데 사용됩니다.

RxReferenceSrvCallAtDpc (SrvCall)

이 매크로는 DPC 수준에서 SRV_CALL 구조체에 대한 참조 작업을 추적하는 데 사용됩니다.

RxReferenceSrvOpen (SrvOpen)

이 매크로는 SRV_OPEN 구조체에 대한 참조 작업을 추적하는 데 사용됩니다.

RxReferenceVNetRoot (VNetRoot)

이 매크로는 V_NET_ROOT 구조체에 대한 참조 작업을 추적하는 데 사용됩니다.

RxReleasePrefixTableLock (TABLE)

이 매크로는 접두사 테이블 잠금을 해제합니다.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

이 매크로는 차단된 I/O 요청을 동일한 작업 큐에 동기화합니다. Windows Server 2003에서 이 매크로는 DropFcbLock 매개 변수가 FALSE로 설정된 __RxSynchronizeBlockingOperations 루틴을 호출합니다.

Windows XP 및 Windows 2000에서 이 매크로는 DropFcbLock 매개 변수가 FALSE로 설정된 __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock 루틴을 호출합니다.

RxSynchronizeBlockingOperations(RXCONTEXT,FCB,IOQUEUE)

이 매크로는 차단된 I/O 요청을 동일한 작업 큐에 동기화합니다. Windows Server 2003에서 이 매크로는 DropFcbLock 매개 변수가 TRUE로 설정된 __RxSynchronizeBlockingOperations 루틴을 호출합니다.

Windows XP 및 Windows 2000에서 이 매크로는 DropFcbLock 매개 변수가 TRUE로 설정된 __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock 루틴을 호출합니다.