다음을 통해 공유


RxStopMinirdr 함수(mrx.h)

RxStopMinirdr 이전에 시작된 네트워크 미니 리디렉터를 중지하기 위해 호출됩니다. RxStopMinirdr일부로, 드라이버가 UNC 이름에 대한 지원을 나타내는 경우 RDBSS는 네트워크 미니 리디렉터 드라이버를 UNC(범용 명명 규칙) 공급자로 MUP(다중 UNC 공급자)로 등록을 해제합니다.

통사론

NTSTATUS RxStopMinirdr(
  [in]  IN PRX_CONTEXT RxContext,
  [out] OUT PBOOLEAN   PostToFsp
);

매개 변수

[in] RxContext

디바이스 개체를 가져와 파일 시스템 프로세스인지 확인하는 데 사용할 RX_CONTEXT 구조체에 대한 포인터입니다.

[out] PostToFsp

파일 시스템 프로세스에서 나중에 처리하기 위해 요청을 게시해야 하는 경우 반환 시 TRUE로 설정된 논리 값에 대한 포인터입니다.

반환 값

RxStopMinirdr 중지 시퀀스가 성공했거나 다음 오류 값 중 하나가 STATUS_SUCCESS 반환합니다.

반환 코드 묘사
STATUS_PENDING RDBSS 및 네트워크 미니 리디렉터에 대한 중지 시퀀스는 파일 시스템 프로세스의 컨텍스트에서 완료되어야 합니다. RxStopMinirdr 대한 호출이 다른 프로세스(예: 사용자 모드 요청)에서 가져온 경우 요청은 이후 처리를 위해 게시되고 STATUS_PENDING 반환됩니다. 대기하지 않고 특정 내부 RDBSS 잠금을 가져올 수 없는 경우에도 이 오류를 반환할 수 있습니다.
STATUS_REDIRECTOR_HAS_OPEN_HANDLES 네트워크 미니 리다이렉터에는 열린 핸들이 있으며 현재 중지할 수 없습니다.
STATUS_REDIRECTOR_STOPPED 네트워크 미니 리다이렉터가 이미 중지되었습니다.

발언

RDBSS에 중지 요청이 실행되면 RDBSS에서 진행 중인 요청이 있을 수 있습니다. 나머지 요청을 완료하기 위해 처리해야 하는 동안 일부 요청을 취소할 수 있습니다.

RDBSS를 닫기 위해 사용할 수 있는 여러 가지 전략이 있습니다. 현재 가장 보수적인 접근 방식이 사용됩니다. 취소할 수 있는 해당 작업의 취소 및 중지 작업은 나머지 요청이 완료될 때까지 다시 유지됩니다.

RDBSS RxStopMinirdr 일반적으로 사용자 모드 애플리케이션 또는 서비스에서 네트워크 미니 리디렉터를 중지하도록 FSCTL 또는 IOCTL 요청의 결과로 호출되지만, 이 호출은 네트워크 미니 리디렉터에서 수행되거나 운영 체제에서 종료 처리의 일부로 수행될 수도 있습니다.

RxStopMinirdr 호출이 실행되면 RDBSS에서 허용되고 네트워크 미니 리디렉터에 전달되는 유일한 작업은 다음 I/O 요청 패킷에 대한 요청입니다.

  • IRP_MJ_CLEANUP
  • IRP_MJ_CLOSE

RDBSS 및 네트워크 미니 리디렉터에 대한 중지 시퀀스는 파일 시스템 프로세스의 컨텍스트에서 완료되어야 합니다. RxStopMinirdr 호출이 다른 프로세스(예: 사용자 모드 요청)에서 오는 경우 나중에 처리하기 위해 요청을 게시해야 하며 STATUS_PENDING 반환됩니다. 이 경우 호출자의 유효 사용자 ID(로그온 ID)가 RxContext 매개 변수의 FsdUid 멤버에 저장됩니다. 또한 대기하지 않고 특정 내부 RDBSS 잠금을 가져올 수 없는 경우 STATUS_PENDING 반환되고 postToFsp TRUE로 설정됩니다. STATUS_PENDING 반환되면 RxStopMinirdr 파일 시스템 프로세스에서 나중에 처리하기 위해 게시되고 완료됩니다.

네트워크 미니 리디렉터가 RDBSS에 등록할 때 UNC에 대한 지원을 나타내는 경우(Controls 매개 변수를 RxRegisterMinirdr) RxStopMinirdr 네트워크 미니 리디렉션기의 DeviceName MUP를 사용하여 UNC 공급자로 등록을 취소합니다(네트워크 미니 리디렉션자를 대신하여 FsRtlDeregisterUncProvider 호출). RxStopMinirdr 네트워크 미니 리디렉터 대신 I/O 관리자(IoUnregisterFileSystem호출)에 파일 시스템을 등록 취소합니다.

RxStopMinirdr 루틴은 이 루틴이 구현된 경우 MrxStop 콜백 루틴을 네트워크 미니 리디렉터를 호출합니다. 활성 FCB가 남아 있지 않으면 STATUS_SUCCESS 반환됩니다. 나머지 활성 FCB가 있는 경우 STATUS_REDIRECTOR_HAS_OPEN_HANDLES 반환됩니다. 두 경우 모두 리렉터에 대한 RDBSS 디스패처가 다운되고 RDBSS에서 네트워크 미니 리렉터의 내부 상태가 RDBSS_STARTABLE 설정됩니다.

요구 사항

요구
대상 플랫폼 바탕 화면
헤더 mrx.h(Mrx.h 포함)
IRQL <= APC_LEVEL

참고 항목

FsRtlDeregisterUncProvider

IoUnregisterFileSystem

RxRegisterMinirdr

RxStartMiniRdr

RxUnregisterMinirdr

RxpUnregisterMinirdr