커널 네트워크 Mini-Redirector 의해 구현된 루틴

네트워크 미니 리다이렉터에서 구현할 수 있는 루틴은 다음과 같습니다.

루틴에서 반환된 값 설명
MRxAreFilesAliased

두 FCB(파일 제어 블록) 구조체가 동일한 파일을 나타내는 경우 RDBSS는 이 루틴을 호출하여 네트워크 미니 리렉터레이터를 쿼리합니다. RDBSS는 동일하지만 이름이 다른 두 파일(예: MS-DOS 짧은 이름 및 긴 이름)을 처리할 때 이 루틴을 호출합니다.

MRxCleanupFobx

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체 확장 구조를 닫도록 요청합니다. RDBSS는 파일 개체에 대한 IRP_MJ_CLEANUP 수신에 대한 응답으로 이 호출을 실행합니다.

MRxCloseSrvOpen

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 SRV_OPEN 구조를 닫도록 요청합니다.

MRxCollapseOpen

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 열려 있는 파일 시스템 요청을 기존 SRV_OPEN 축소하도록 요청합니다.

MRxCompleteBufferingStateChangeRequest

RDBSS는 이 루틴을 호출하여 버퍼링 상태 변경 요청이 완료되었음을 네트워크 미니 리디렉터에 알립니다. 예를 들어 SMB 리렉터에서는 이 루틴을 사용하여 oplock 중단 응답을 보내거나 파일이 더 이상 사용되지 않는 경우 oplock 중단의 핸들을 닫습니다. 서버로 플러시해야 하는 바이트 범위 잠금은 RX_CONTEXT 구조체의 LowIoContext.ParamsFor.Locks.LockList 멤버의 네트워크 미니 리다이렉터로 전달됩니다.

MRxComputeNewBufferingState

RDBSS는 이 루틴을 호출하여 네트워크 미니 리렉터에서 새 버퍼링 상태 변경을 계산하도록 요청합니다.

MRxCreate

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 파일 시스템 개체를 만들도록 요청합니다. RDBSS는 IRP_MJ_CREATE 수신에 대한 응답으로 이 호출을 실행합니다.

MRxCreateSrvCall

RDBSS는 네트워크 미니 리디렉션자가 SRV_CALL 구조를 만들고 서버와의 연결을 설정하도록 요청하기 위해 이 루틴을 호출합니다.

MRxCreateVNetRoot

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 V_NET_ROOT 구조를 만들도록 요청합니다.

MRxDeallocateForFcb

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 FCB의 할당을 취소하도록 요청합니다. 이 호출은 파일 시스템 개체를 닫는 요청에 대한 응답입니다.

MRxDeallocateForFobx

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 FOBX 구조체의 할당을 취소하도록 요청합니다. 이 호출은 파일 시스템 개체를 닫는 요청에 대한 응답입니다.

MRxDevFcbXXXControlFile

RDBSS는 이 루틴을 호출하여 디바이스 FCB 제어 요청을 네트워크 미니 리다이렉터에 전달합니다. RDBSS는 디바이스 FCB에서 IRP_MJ_DEVICE_CONTROL, IRP_MJ_FILE_SYSTEM_CONTROL 또는 IRP_MJ_INTERNAL_DEVICE_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다.

MRxExtendForCache

RDBSS는 이 루틴을 호출하여 캐시 관리자가 파일을 캐시할 때 네트워크 미니 리디렉터에서 파일을 확장하도록 요청합니다.

MRxExtendForNonCache

RDBSS는 캐시 관리자가 파일을 캐시하지 않을 때 네트워크 미니 리디렉터에서 파일을 확장하도록 요청하기 위해 이 루틴을 호출합니다.

MRxExtractNetRootName

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 지정된 경로 이름에서 NET_ROOT 이름을 추출하도록 요청합니다.

MRxFinalizeNetRoot

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 NET_ROOT 개체를 완료하도록 요청합니다.

MRxFinalizeSrvCall

RDBSS는 네트워크 미니 리디렉션자가 서버와의 연결을 설정하는 데 사용되는 SRV_CALL 구조를 완료하도록 요청하기 위해 이 루틴을 호출합니다.

MRxFinalizeVNetRoot

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 V_NET_ROOT 개체를 완료하도록 요청합니다.

MRxFlush

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체를 플러시하도록 요청합니다. RDBSS는 IRP_MJ_FLUSH_BUFFERS 수신에 대한 응답으로 이 호출을 실행합니다.

MRxForceClosed

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터를 강제로 닫도록 요청합니다. 이 루틴은 SRV_OPEN 구조체의 조건이 잘못되거나 SRV_OPEN 구조체가 닫힌 것으로 표시되면 호출됩니다.

MRxGetConnectionId

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉터에서 여러 세션을 처리하는 데 사용할 수 있는 연결에 대한 연결 ID를 반환하도록 요청합니다. 네트워크 미니 리디렉터에서 연결 ID를 지원하는 경우 반환된 연결 ID가 이름 테이블에 저장된 연결 구조에 추가됩니다. RDBSS는 연결 ID를 불투명 Blob으로 간주하고 지정된 이름의 net-name 테이블을 조회하는 동안 연결 ID Blob의 바이트 바이트 비교를 수행합니다.

MRxIsLockRealizable

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션기가 특정 NET_ROOT 구조에서 바이트 범위 잠금이 지원되는지 여부를 나타내도록 요청합니다.

MRxIsValidDirectory

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉터에게 경로가 유효한 디렉터리인지 여부를 표시하도록 요청합니다.

MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 파일 개체에 대한 배타적 잠금을 열도록 요청합니다. RDBSS는 IRP_MN_LOCK 부 코드가 있는 IRP_MJ_LOCK_CONTROL 수신하고 IrpSp-Flags>에 SL_EXCLUSIVE_LOCK 비트 집합이 있는 경우 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_FSCTL]

RDBSS는 이 루틴을 호출하여 파일 시스템 제어 요청을 네트워크 미니 리다이렉터에 전달합니다. RDBSS는 IRP_MJ_FILE_SYSTEM_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_IOCTL]

RDBSS는 이 루틴을 호출하여 I/O 시스템 제어 요청을 네트워크 미니 리렉터에 전달합니다. RDBSS는 IRP_MJ_DEVICE_CONTROL 또는 IRP_MJ_INTERNAL_DEVICE_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]

RDBSS는 이 루틴을 호출하여 디렉터리 변경 알림 작업에 대한 네트워크 미니 리디렉터에 요청을 실행합니다. RDBSS는 IRP_MJ_DIRECTORY_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_READ]

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에 대한 읽기 요청을 실행합니다. RDBSS는 IRP_MJ_READ 수신에 대한 응답으로 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]

RDBSS는 이 루틴을 호출하여 네트워크 리디렉션자가 파일 개체에 대한 공유 잠금을 열도록 요청합니다. RDBSS는 IRP_MN_LOCK 부 코드가 있는 IRP_MJ_LOCK_CONTROL 수신하고 IrpSp-Flags>에 SL_EXCLUSIVE_LOCK 비트 집합이 있는 경우 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_UNLOCK]

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 파일 개체에 대한 단일 잠금을 제거하도록 요청합니다. RDBSS는 IRP_MN_UNLOCK_SINGLE 부 코드가 포함된 IRP_MJ_LOCK_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다.

MRxLowIOSubmit[LOWIO_OP_UNLOCK_MULTIPLE]

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 파일 개체에 보관된 여러 잠금을 제거하도록 요청합니다. RDBSS는 IRP_MN_UNLOCK_ALL 또는 IRP_MN_UNLOCK_ALL_BY_KEY 부 코드가 포함된 IRP_MJ_LOCK_CONTROL 수신에 대한 응답으로 이 호출을 실행합니다. 잠금 해제할 범위는 RX_CONTEXT LowIoContext.ParamsFor.Locks.LockList 멤버에 지정됩니다.

MRxLowIOSubmit[LOWIO_OP_WRITE]

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에 쓰기 요청을 실행합니다. RDBSS는 IRP_MJ_WRITE 수신에 대한 응답으로 이 호출을 실행합니다.

MRxPreparseName

RDBSS는 네트워크 미니 리디렉터에게 이름을 준비할 수 있는 기회를 제공하기 위해 이 루틴을 호출합니다.

MRxQueryDirectory

RDBSS는 이 루틴을 호출하여 파일 디렉터리 시스템 개체에 대한 네트워크 미니 리디렉터 쿼리 정보를 요청합니다.

MRxQueryEaInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉터 쿼리가 파일 시스템 개체에 대한 확장된 특성 정보를 요청합니다. RDBSS는 IRP_MJ_QUERY_EA 수신에 대한 응답으로 이 호출을 실행합니다.

MRxQueryFileInfo

RDBSS는 이 루틴을 호출하여 파일 시스템 개체에 대한 네트워크 미니 리다이렉터 쿼리 파일 정보를 요청합니다. RDBSS는 IRP_MJ_QUERY_INFORMATION 수신에 대한 응답으로 이 호출을 실행합니다.

MRxQueryQuotaInfo

RDBSS는 이 루틴을 호출하여 파일 시스템 개체에 대한 네트워크 미니 리디렉션자 쿼리 할당량 정보를 요청합니다. RDBSS는 IRP_MJ_QUERY_QUOTA 수신에 대한 응답으로 이 호출을 실행합니다.

MRxQuerySdInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체에 대한 보안 설명자 정보를 쿼리하도록 요청합니다. RDBSS는 IRP_MJ_QUERY_SECURITY 수신에 대한 응답으로 이 호출을 실행합니다.

MRxQueryVolumeInfo

RDBSS는 네트워크 미니 리제이렉터 쿼리 볼륨 정보를 요청하기 위해 이 루틴을 호출합니다. RDBSS는 IRP_MJ_QUERY_VOLUME_INFORMATION 수신에 대한 응답으로 이 호출을 실행합니다.

MRxSetEaInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉터에서 파일 시스템 개체에 확장 특성 정보를 설정하도록 요청합니다. RDBSS는 IRP_MJ_SET_EA 수신에 대한 응답으로 이 호출을 실행합니다.

MRxSetFileInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 파일 시스템 개체에 대한 파일 정보를 설정하도록 요청합니다. RDBSS는 IRP_MJ_SET_INFORMATION 수신에 대한 응답으로 이 호출을 실행합니다.

MRxSetFileInfoAtCleanup

RDBSS는 이 루틴을 호출하여 정리 시 네트워크 미니 리다이렉터에서 파일 시스템 개체에 대한 파일 정보를 설정하도록 요청합니다. RDBSS는 애플리케이션이 핸들을 닫을 때와 I/O 관리자가 파일 개체를 닫기 전에 정리하는 동안 이 호출을 실행합니다.

MRxSetQuotaInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체에 대한 할당량 정보를 설정하도록 요청합니다. RDBSS는 IRP_MJ_SET_QUOTA 수신에 대한 응답으로 이 호출을 실행합니다.

MRxSetSdInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체에 대한 보안 설명자 정보를 설정하도록 요청합니다. RDBSS는 IRP_MJ_SET_SECURITY 수신에 대한 응답으로 이 호출을 실행합니다.

MRxSetVolumeInfo

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에서 볼륨 정보를 설정하도록 요청합니다. RDBSS는 IRP_MJ_SET_VOLUME_INFORMATION 수신에 대한 응답으로 이 호출을 실행합니다.

MRxShouldTryToCollapseThisOpen

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터에 RDBSS가 열려 있는 요청을 기존 파일 시스템 개체로 축소해야 하는지 여부를 나타냅니다.

MRxSrvCallWinnerNotify

이 루틴은 원래 RDBSS가 네트워크 미니 리다이렉터에 여러 리디렉션자가 요청을 이행할 수 있을 때 "승자"임을 알리도록 설계되었습니다. 성공한 네트워크 미니 리다이렉터에서는 SRV_CALL 구조를 만들고 서버와의 연결을 설정해야 합니다.

RDBSS의 현재 구현에서 각 네트워크 미니 리다이렉터에는 RDBSS의 자체 복사본이 있으므로 RDBSS 계층에는 경쟁 네트워크 리디렉션자가 없습니다. 이 루틴은 SRV_CALL 구조를 만들기 위한 모든 요청 후에 호출됩니다.

동일한 UNC(범용 명명 규칙) 네임스페이스를 처리하기 위해 여러 리디렉션자가 설치되면 레지스트리에 지정된 리디렉션자의 순서에 따라 MUP(다중 UNC 공급자)에서 요청을 서비스할 리디렉터가 선택됩니다.

MRxStart

RDBSS는 이 루틴을 호출하여 네트워크 미니 리다이렉터를 시작합니다.

MRxStop

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

MRxTruncate

RDBSS는 이 루틴을 호출하여 네트워크 미니 리디렉션자가 파일 시스템 개체를 자르도록 요청합니다.

MRxZeroExtend

RDBSS는 이 루틴을 호출하여 파일 크기가 FCB의 유효한 데이터 길이보다 큰 경우 네트워크 미니 리다이렉터에서 파일을 정리할 때 0으로 채우는 파일 시스템 개체를 확장하도록 요청합니다.