다음을 통해 공유


MRx 루틴 만들기

네트워크 미니 리디렉터에서 파일 시스템 개체를 만들도록 요청하기 위해 RDBSS에서MRxCreate 루틴을 호출합니다.

구문

PMRX_CALLDOWN MRxCreate;

NTSTATUS MRxCreate(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

매개 변수

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

반환 값

MRxCreate 는 성공에 대한 STATUS_SUCCESS 반환하거나 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES

작업을 완료할 리소스가 부족했습니다.

STATUS_NETWORK_ACCESS_DENIED

네트워크 액세스가 거부되었습니다. 네트워크 미니 리다이렉터에서 읽기 전용 공유에서 새 파일을 열라는 요청을 받은 경우 이 오류가 반환될 수 있습니다.

STATUS_NOT_IMPLEMENTED

원격 부팅 또는 원격 페이지 파일과 같이 요청된 기능은 구현되지 않습니다.

STATUS_NOT_SUPPORTED

확장 특성과 같이 요청된 기능은 지원되지 않습니다.

STATUS_OBJECT_NAME_COLLISION

네트워크 미니 리렉터에서 이미 존재하는 파일을 만들라는 요청을 받았습니다.

STATUS_OBJECT_NAME_NOT_FOUND

개체 이름을 찾을 수 없습니다. 네트워크 미니 리다이렉터에 존재하지 않는 파일을 열라는 요청을 받은 경우 이 오류가 반환될 수 있습니다.

STATUS_OBJECT_PATH_NOT_FOUND

개체 경로를 찾을 수 없습니다. NTFS 스트림 개체가 요청되었고 원격 파일 시스템에서 스트림을 지원하지 않는 경우 이 오류가 반환될 수 있습니다.

STATUS_REPARSE

기호 링크를 처리하려면 재분석이 필요합니다.

STATUS_RETRY

작업을 다시 시도해야 합니다. 네트워크 미니 리디렉션기에서 공유 위반 또는 액세스 거부 오류가 발생한 경우 이 오류를 반환할 수 있습니다.

설명

MRxCreate 는 네트워크 미니 리디렉터에서 네트워크를 통해 파일 시스템 개체를 열도록 요청하기 위해 RDBSS에서 호출됩니다. 이 호출은 IRP_MJ_CREATE 요청을 수신하는 데 대한 응답으로 RDBSS에서 발급됩니다.

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

pRelevantSrvOpen 은 SRV_OPEN 구조체로 설정됩니다.

Create.pSrvCall 은 SRV_CALL 구조체로 설정됩니다.

Create.NtCreateParameters 가 요청된 NT_CREATE_PARAMETERS 설정됩니다.

네트워크 미니 리렉터의 컨텍스트에서 파일 개체는 연결된 FCB(파일 제어 블록) 및 FOBX(파일 개체 확장명) 구조를 나타냅니다. 파일 개체와 FOBX 간에는 일대일 대응이 있습니다. 많은 파일 개체는 원격 서버의 단일 파일을 나타내는 동일한 FCB를 참조합니다. 클라이언트는 동일한 FCB에 여러 개의 열려 있는 요청(NtCreateFile 요청)을 가질 수 있으며 각 요청은 새 파일 개체를 만듭니다. RDBSS 및 네트워크 미니 리디렉터는 수신된 NtCreateFile 요청보다 적은 수의 MRxCreate 요청을 보내도록 선택할 수 있으며, 실제로 여러 FOBX 간에 SRV_OPEN 구조를 공유할 수 있습니다.

MRxCreate 요청이 파일 덮어쓰기용이고 MRxCreate가 STATUS_SUCCESS 반환된 경우 RDBSS는 페이징 I/O 리소스를 획득하고 파일을 자립니다. 캐시 관리자가 파일을 캐시하는 경우 RDBSS는 캐시 관리자의 크기를 서버에서 방금 받은 크기로 업데이트합니다.

반환하기 전에 MRxCreateRxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 CurrentIrp-IoStatus.Information> 멤버를 설정해야 합니다.

요구 사항

대상 플랫폼

데스크톱

헤더

Mrx.h(Mrx.h 포함)

추가 정보

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRx만들기

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend