다음을 통해 공유


MRxStop 루틴

네트워크 미니 리디렉터를 중지하기 위해 RDBSS에서MRxStop 루틴을 호출합니다.

구문

PMRX_CALLDOWN_CTX MRxStop;

NTSTATUS MRxStop(
  _Inout_ PRX_CONTEXT          RxContext,
  _Inout_ PRDBSS_DEVICE_OBJECT RxDeviceObject
)
{ ... }

매개 변수

RxContext [in, out]
RX_CONTEXT 구조체에 대한 포인터입니다. 이 매개 변수에는 네트워크 미니 리다이렉터의 중지를 요청한 IRP가 포함되어 있습니다.

RxDeviceObject [in, out]
이 네트워크 미니 리다이렉터에 대한 RDBSS_DEVICE_OBJECT 구조체에 대한 포인터입니다.

반환 값

MRxStop 은 성공 또는 적절한 NTSTATUS 값(예: 다음 중 하나)에 대한 STATUS_SUCCESS 반환합니다.

반환 코드 설명
STATUS_REDIRECTOR_HAS_OPEN_HANDLES

네트워크 미니 리다이렉터에는 현재 중지되지 않도록 하는 열린 핸들이 있습니다.

STATUS_REDIRECTOR_NOT_STARTED

네트워크 미니 리 디렉터가 시작되지 않았습니다.

설명

MRxStop 은 RDBSS 관점에서 네트워크 미니 리디렉터를 중지하고 초기화하지 않습니다. 네트워크 미니 리다이렉터를 중지하려면 메모리 할당 및 기타 시스템 리소스를 해제해야 할 수 있습니다.

MRxStop을 호출하기 전에 RDBSS는 다음 값을 수정합니다.

RxContext가 가리키는 RX_CONTEXT 구조체의 MajorFunction 멤버는 IRP의 주 함수로 설정됩니다.

RxContext가 가리키는 RX_CONTEXT 구조의 LowIoContext.ParamsFor.FsCtl.FsControlCode 멤버는 네트워크 미니 리다이렉터를 중지하는 데 사용되는 FSTCL 요청인 경우 IRP에 대한 FSCTL 코드로 설정됩니다.

RxDeviceObject가 가리키는 RDBSS_DEVICE_OBJECT 구조체의 StartStopContext.State 멤버는 RDBSS_STOP_IN_PROGRESS

RxDeviceObject가 가리키는 RDBSS_DEVICE_OBJECT 구조체의 StartStopContext.pStopContext 멤버는 RxContext 매개 변수로 설정됩니다.

MRxStopRxStopMinirdr 루틴에서 RDBSS에 의해 호출됩니다.

MRxStop이 STATUS_SUCCESS 반환하면 루틴이 성공했습니다. 다른 반환 값은 네트워크 미니 리다이렉터 중지에서 오류가 발생했음을 나타냅니다.

MRxStop이 STATUS_SUCCESS 반환하는 경우 RDBSS는 RDBSS의 상태를 RDBSS_STARTABLE 설정합니다. 이 상태는 RxDeviceObject가 가리키는 RDBSS_DEVICE_OBJECT 구조체의 StartStopContext.State 멤버에 저장됩니다.

네트워크 미니 리트리렉터에서는 일반적으로 네트워크 미니 리트리버가 시작되었는지 여부를 나타내는 내부 변수를 유지 관리합니다. 예를 들어 네트워크 미니 리 디렉터에서 중지, 시작, 시작 작업 또는 중지 작업이 진행 중인 시기를 추적할 수 있습니다.

요구 사항

대상 플랫폼

데스크톱

헤더

Mrx.h(Mrx.h 포함)

추가 정보

MRxDevFcbXXXControlFile

MrxStart

RxStopMinirdr