다음을 통해 공유


RxCreateNetRoot 함수(fcb.h)

RxCreateNetRoot 는 NET_ROOT 구조를 할당하고 초기화하고 연결된 디바이스 개체의 net name 테이블에 이름을 삽입합니다.

구문

PNET_ROOT RxCreateNetRoot(
  [in]           IN PSRV_CALL         SrvCall,
  [in]           IN PUNICODE_STRING   Name,
  [in]           IN ULONG             NetRootFlags,
  [in, optional] IN PRX_CONNECTION_ID RxConnectionId
);

매개 변수

[in] SrvCall

연결된 SRV_CALL 구조체에 대한 포인터입니다.

[in] Name

이름 테이블에 삽입할 이름에 대한 포인터입니다.

[in] NetRootFlags

NET_ROOT 구조체의 상태를 나타내는 데 사용되는 NET_ROOT Flags 멤버를 설정하는 값입니다.

[in, optional] RxConnectionId

접두사 이름 테이블에 삽입할 이름과 연결할 연결 ID에 대한 포인터입니다. 이 매개 변수는 NULL 일 수 있습니다. 이 경우 접두사 이름 테이블에 삽입된 이름과 연결된 연결 ID가 없습니다.

반환 값

RxCreateNetRoot 는 성공 시 새로 만든 NET_ROOT 데이터 구조에 대한 포인터 또는 실패 시 NULL 포인터를 반환합니다.

설명

RxCreateNetRoot 루틴은 일반적으로 네트워크 미니 리디렉터 드라이버에서 직접 호출되지 않습니다. RDBSS는 IRP_MJ_CREATE 대한 I/O 요청 패킷이 수신되고 NET_ROOT 만들어야 할 때 내부적으로 이 루틴을 호출합니다. 이 IRP는 일반적으로 네트워크 공유에서 파일 만들기 작업을 요청하는 사용자 모드 애플리케이션에 대한 응답으로 RDBSS에서 수신됩니다. 다른 커널 드라이버가 이러한 IRP를 발급할 수도 있습니다.

RxCreateNetRoot를 호출하기 전에 SrvCall 매개 변수의 디바이스 개체 멤버와 연결된 이름 테이블에 대한 잠금을 단독 모드로 획득해야 합니다.

NET_ROOT 플래그는 네트워크 미니 리디렉션기에 표시되는 그룹과 네트워크 미니 리디렉션기에 보이지 않는 두 그룹으로 분할됩니다. 표시되는 항목은 NET_ROOT Flags 멤버의 하위 16비트입니다. 이 루틴은 설정되는 플래그를 검사 테스트하지 않습니다.

성공하면 SRV_CALL 구조체에 대한 참조 수가 증가합니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 fcb.h(Rxcontx.h, Mrxfcb.h, Prefix.h, Struchdr.h, Fcb.h 포함)
IRQL <= APC_LEVEL

추가 정보

RxCreateNetFcb

RxCreateNetFobx

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

NET_ROOT 구조체

SRV_CALL 구조체