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) |
이 매크로는 현재 스레드가 공유 모드 또는 배타적 모드에서 일반 리소스에 액세스할 수 있는지 확인합니다. 이 매크로는 ExIsResourceAcquiredSharedLite 및 ExIsResourceAcquiredExclusiveLite 루틴을 호출합니다. |
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 루틴을 호출합니다. |