RxPurgeAllFobxs 함수(rxprocs.h)

RxPurgeAllFobxs는 네트워크 미니 리렉터와 연결된 모든 FOBX 구조를 제거합니다.

구문

void RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

매개 변수

RxDeviceObject

제거를 수행해야 하는 미니 리렉터 디바이스 개체에 대한 포인터입니다.

반환 값

없음

설명

정리 시 파일 개체와 연결된 사용자 핸들이 더 이상 없습니다. 이러한 경우 닫기와 정리 사이의 시간 창은 메모리 관리자와 캐시 관리자가 유지 관리하는 추가 참조에 의해 결정됩니다. RDBSS는 별도의 스레드에서 실행되는 청소기 프로세스를 사용하여 불필요한 FOBX 및 기타 구조를 청소하고 제거합니다.

네트워크 미니 리디렉션기는 PnP 전원 변경 이벤트에 대한 응답으로 RxPurgeAllFobxsRxScavengeAllFobsx 를 호출할 수 있습니다.

RxPurgeAllFobxs 루틴은 scavenger 뮤텍스를 획득하고 목록 항목을 제거하는 scavenger 개체의 ClosePendingFobxsList 멤버를 트래버스한 다음 뮤텍스를 해제합니다. FOBX 구조가 NULL이 아닌 경우 RxPurgeAllFobxs 는 FOBX 구조를 제거하고 연결된 FCB 구조체에 대한 배타적 잠금을 획득하려고 합니다. 성공하면 RxPurgeAllFobxs 는 NET_FOBX 구조체를 역참조하고, FCB 구조를 마무리하고, 해제하려고 시도합니다.

확인된 빌드에서 RxPurgeAllFobxs 는 다음을 비롯한 다양한 조건에 대해 시스템이 ASSERT로 설정되도록 합니다.

  • RxDeviceObjectRxScavenger->ClosePendingFobxsList 구조체의 Flink 멤버는 NULL입니다.
  • Fobx->NodeTypeCode 는 RDBSS_NTC_FOBX 않습니다.
  • 목록 항목에 대한 FlinkBlink 멤버는 NULL입니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 rxprocs.h(Rxprocs.h 포함)
IRQL <= APC_LEVEL

추가 정보

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot