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는 캐시 관리자의 크기를 서버에서 방금 받은 크기로 업데이트합니다.
반환하기 전에 MRxCreate는 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 CurrentIrp-IoStatus.Information> 멤버를 설정해야 합니다.
요구 사항
대상 플랫폼 |
데스크톱 |
헤더 |
Mrx.h(Mrx.h 포함) |