다음을 통해 공유


MRxLowIOSubmit[LOWIO_OP_FSCTL] 루틴

MRxLowIOSubmit[LOWIO_OP_FSCTL] 루틴은 RDBSS에서 호출되어 네트워크 미니 리트리버가 원격 파일에 대한 파일 시스템 제어 요청을 실행하도록 요청합니다.

구문

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_FSCTL](
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

매개 변수

RxContext [in, out]
RX_CONTEXT 구조체에 대한 포인터입니다. 이 매개 변수에는 작업을 요청하는 IRP가 포함되어 있습니다.

반환 값

MRxLowIOSubmit[LOWIO_OP_FSCTL] 는 성공 시 STATUS_SUCCESS 반환하거나 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_CONNECTION_DISCONNECTED

연결이 끊어졌습니다.

STATUS_INSUFFICIENT_RESOURCES

요청을 완료할 리소스가 부족했습니다.

STATUS_INVALID_DEVICE_REQUEST

잘못된 디바이스 요청이 지정되었습니다.

STATUS_INVALID_NETWORK_RESPONSE

원격 서버에서 잘못된 응답을 받았습니다.

STATUS_INVALID_PARAMETER

잘못된 매개 변수가 RxContext에 지정되었습니다.

STATUS_LINK_FAILED

원격 서버에 다시 연결하여 요청을 완료하지 못했습니다.

STATUS_NOT_IMPLEMENTED

이 루틴은 구현되지 않습니다.

STATUS_NOT_SUPPORTED

지정된 FSCTL은 네트워크 미니 리다이렉터에서 지원되지 않습니다.

STATUS_UNSUCCESSFUL

호출이 실패했습니다.

설명

RDBSS는 IRP_MJ_FILE_SYSTEM_CONTROL 요청 수신에 대한 응답으로 MRxLowIOSubmit[LOWIO_OP_FSCTL]를 호출합니다.

MRxLowIOSubmit[LOWIO_OP_FSCTL]를 호출하기 전에 RDBSS는 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조에서 다음 멤버를 수정합니다.

LowIoContext.Operation 멤버가 LOWIO_OP_FSCTL 설정됩니다.

LowIoContext.ResourceThreadId 멤버는 RDBSS에서 작업을 시작한 프로세스의 스레드로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.FsControlCode 멤버가 FSCTL 주 제어 코드로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.MinorFunction 멤버는 FSCTL 부 컨트롤 코드로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.pInputBuffer 멤버가 입력 버퍼로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.InputBufferLength 멤버가 입력 버퍼 길이로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.pOutputBuffer 멤버가 출력 버퍼로 설정됩니다.

LowIoContext.ParamsFor.FsCtl.OutputBufferLength 멤버가 출력 버퍼 길이로 설정됩니다.

네트워크 미니 리다이렉터에서 처리하는 FSCTL(파일 시스템 제어 코드) 요청은 다음과 같은 여러 범주 중 하나로 분류할 수 있습니다.

  • RDBSS 및 네트워크 미니 리다이렉터에서 구현되고 사용되는 FSCTL

  • 네트워크 미니 리다이렉터에서만 구현되고 사용되는 FSCTL

  • 네트워크 미니 리다이렉터에서 볼 수 없는 FSCTL입니다. 이러한 FSCTL은 전적으로 디버깅 지원으로만 제공됩니다.

MRxLowIOSubmit[LOWIO_OP_FSCTL] 루틴이 처리되는 동안 RX_CONTEXT LowIoContext.ResourceThreadId 멤버는 RDBSS에서 작업을 시작한 프로세스의 스레드를 나타내도록 보장됩니다. RX_CONTEXT LowIoContext.ResourceThreadId 멤버를 사용하여 다른 스레드를 대신하여 입력 리소스를 해제할 수 있습니다. 비동기 루틴이 완료되면 초기 스레드에서 얻은 입력 리소스를 해제할 수 있습니다.

요구 사항

대상 플랫폼

데스크톱

헤더

Mrx.h(Mrx.h 포함)

추가 정보

MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]

MRxLowIOSubmit[LOWIO_OP_IOCTL]

MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]

MRxLowIOSubmit[LOWIO_OP_READ]

MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK_MULTIPLE]

MRxLowIOSubmit[LOWIO_OP_WRITE]