MRxQueryEaInfo 루틴
MRxQueryEaInfo 루틴은 RDBSS에서 호출되어 네트워크 미니 리디렉터에서 파일 시스템 개체에 대한 확장된 특성 정보를 쿼리하도록 요청합니다.
구문
PMRX_CALLDOWN MRxQueryEaInfo;
NTSTATUS MRxQueryEaInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
매개 변수
RxContext [in, out]
RX_CONTEXT 구조체에 대한 포인터입니다. 이 매개 변수에는 작업을 요청하는 IRP가 포함되어 있습니다.
반환 값
MRxQueryEaInfo 는 성공 시 STATUS_SUCCESS 반환하거나 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_ACCESS_DENIED | 호출자에게 이 작업에 대한 적절한 보안이 부족했습니다. |
STATUS_BUFFER_OVERFLOW | 확장된 특성 정보를 받을 버퍼가 너무 작습니다. 이 반환 값은 성공으로 간주되어야 하며 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 Info.Buffer 멤버에서 가능한 한 많은 유효한 데이터를 반환해야 합니다. |
STATUS_BUFFER_TOO_SMALL | 버퍼가 너무 작아서 요청된 데이터를 받을 수 없습니다. 이 값이 반환되면 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 InformationToReturn 멤버를 호출이 성공하기 위해 예상 버퍼의 최소 크기로 설정해야 합니다. |
STATUS_CONNECTION_DISCONNECTED | 연결이 끊어졌습니다. |
STATUS_EA_CORRUPT_ERROR | 원격 서버에서 잘못된 확장 특성 정보를 수신했습니다. |
STATUS_INSUFFICIENT_RESOURCES | 쿼리를 완료할 리소스가 부족했습니다. |
STATUS_INVALID_PARAMETER | 잘못된 매개 변수가 지정되었습니다. |
STATUS_NONEXISTENT_EA_ENTRY | 파일 개체에 확장 특성이 없으며 사용자가 확장 특성 인덱스 제공 |
STATUS_NOT_SUPPORTED | 확장 특성은 지원되지 않습니다. |
STATUS_ONLY_IF_CONNECTED | SRV_OPEN 구조체가 연결되어 있지 않습니다. |
STATUS_REQUEST_ABORTED | 네트워크 요청이 중단되었습니다. |
설명
RDBSS는 IRP_MJ_QUERY_EA 요청 수신에 대한 응답으로 MRxQueryEaInfo에 대한 호출을 실행합니다.
MRxQueryEaInfo를 호출하기 전에 RDBSS는 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체에서 다음 멤버를 수정합니다.
Info.Buffer 멤버는 I/O 요청 패킷에서 사용자 버퍼로 설정됩니다. 이 버퍼는 필요한 경우 RDBSS에 의해 이미 잠겨 있습니다.
Info.LengthRemaining 멤버는 IrpSp-Parameters.QueryEa.Length>로 설정됩니다.
QueryEa.UserEaList 멤버는 IrpSp-Parameters.QueryEa.EaList>로 설정됩니다.
QueryEa.UserEaListLength 멤버는 IrpSp-Parameters.QueryEa.EaListLength>로 설정됩니다.
QueryEa.UserEaIndex 멤버는 IrpSp-Parameters.QueryEa.EaIndex>로 설정됩니다.
IrpSp-Flags>에 SL_RESTART_SCAN 비트가 있는 경우 QueryEa.RestartScan 멤버는 0이 아닌 값으로 설정됩니다.
IrpSp-Flags>에 SL_RETURN_SINGLE_ENTRY 비트가 있는 경우 QueryEa.ReturnSingleEntry 멤버는 0이 아닌 값으로 설정됩니다.
IrpSp-Flags>에 SL_INDEX_SPECIFIED 비트가 있는 경우 QueryEa.IndexSpecified 멤버는 0이 아닌 값으로 설정됩니다.
성공하면 MRxQueryEaInfo는 RX_CONTEXT 구조체의 Info.LengthRemaining 멤버를 반환된 확장 특성 정보의 길이로 설정하고 Fobx-OffsetOfNextEaToReturn> 멤버도 업데이트해야 합니다. MRxQueryEaInfo 호출에 성공하면 RDBSS는 IRP의 IoStatus.Information 멤버를 IrpSp-Parameters.QueryEa.Length>로 설정하여 RX_CONTEXT Info.LengthRemaining 멤버를 뺀 값입니다.
요구 사항
대상 플랫폼 |
데스크톱 |
헤더 |
Mrx.h(Mrx.h 포함) |