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 매개 변수로 설정됩니다.
MRxStop 은 RxStopMinirdr 루틴에서 RDBSS에 의해 호출됩니다.
MRxStop이 STATUS_SUCCESS 반환하면 루틴이 성공했습니다. 다른 반환 값은 네트워크 미니 리다이렉터 중지에서 오류가 발생했음을 나타냅니다.
MRxStop이 STATUS_SUCCESS 반환하는 경우 RDBSS는 RDBSS의 상태를 RDBSS_STARTABLE 설정합니다. 이 상태는 RxDeviceObject가 가리키는 RDBSS_DEVICE_OBJECT 구조체의 StartStopContext.State 멤버에 저장됩니다.
네트워크 미니 리트리렉터에서는 일반적으로 네트워크 미니 리트리버가 시작되었는지 여부를 나타내는 내부 변수를 유지 관리합니다. 예를 들어 네트워크 미니 리 디렉터에서 중지, 시작, 시작 작업 또는 중지 작업이 진행 중인 시기를 추적할 수 있습니다.
요구 사항
대상 플랫폼 |
데스크톱 |
헤더 |
Mrx.h(Mrx.h 포함) |