MRxQueryFileInfo 루틴
MRxQueryFileInfo 루틴은 RDBSS에서 파일 시스템 개체에 대한 네트워크 미니 리디렉션자 쿼리 파일 정보를 요청하기 위해 호출됩니다.
구문
PMRX_CALLDOWN MRxQueryFileInfo;
NTSTATUS MRxQueryFileInfo(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
매개 변수
RxContext [in, out]
RX_CONTEXT 구조체에 대한 포인터입니다. 이 매개 변수에는 작업을 요청하는 IRP가 포함되어 있습니다.
반환 값
MRxQueryFileInfo 는 성공 시 STATUS_SUCCESS 반환하거나 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_ACCESS_DENIED | 호출자에게 이 작업에 대한 적절한 보안이 부족했습니다. |
STATUS_BUFFER_OVERFLOW | 파일 정보를 받을 버퍼가 너무 작습니다. 이 반환 값은 성공으로 간주되어야 하며 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 Info.Buffer 멤버에서 가능한 한 많은 유효한 데이터를 반환해야 합니다. |
STATUS_BUFFER_TOO_SMALL | 버퍼가 너무 작아서 요청된 데이터를 받을 수 없습니다. 이 값이 반환되면 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체의 InformationToReturn 멤버를 호출이 성공하기 위해 예상 버퍼의 최소 크기로 설정해야 합니다. |
STATUS_INSUFFICIENT_RESOURCES | 쿼리를 완료할 리소스가 부족했습니다. |
STATUS_INVALID_NETWORK_RESPONSE | 잘못된 파일 정보 버퍼가 원격 서버에서 수신되었습니다. |
STATUS_INVALID_PARAMETER | 잘못된 매개 변수가 지정되었습니다. 이 값은 RX_CONTEXT FileInformationClass 멤버에 대한 잘못된 값이 전달된 경우 반환될 수 있습니다. 지정한 FileInformationClass 멤버가 FileStreamInformation용이고 원격 파일 시스템에서 스트림을 지원하지 않는 경우에도 이 값을 반환할 수 있습니다. |
STATUS_OBJECT_NAME_NOT_FOUND | 개체 이름을 찾을 수 없습니다. 오류 코드입니다. |
설명
RDBSS는 IRP_MJ_QUERY_INFORMATION 요청 수신에 대한 응답으로 MRxQueryFileInfo에 대한 호출을 실행합니다.
MRxQueryFileInfo를 호출하기 전에 RDBSS는 RxContext 매개 변수가 가리키는 RX_CONTEXT 구조에서 다음 멤버를 수정합니다.
Info.FileInformationClass 멤버는 요청된 FILE_INFORMATION_CLASS 값인 IrpSp-Parameters.QueryFile.FileInformationClass>로 설정됩니다.
Info.Buffer 멤버는 I/O 요청 패킷에서 사용자 버퍼로 설정됩니다.
Info.LengthRemaining 멤버는 IrpSp-Parameters.QueryFile.Length>로 설정됩니다.
QueryDirectory.FileIndex 멤버는 IrpSp-Parameters.QueryDirectory.FileIndex>로 설정됩니다.
IrpSp-Flags>에 SL_RESTART_SCAN 비트 집합이 있는 경우 QueryDirectory.RestartScan 멤버가 설정됩니다.
IrpSp-Flags>에 SL_RETURN_SINGLE_ENTRY 비트가 설정된 경우 QueryDirectory.ReturnSingleEntry 멤버가 설정됩니다.
Fobx-UnicodeQueryTemplate.Buffer가 NULL이고 Fobx-Flags>> 에 FOBX_FLAG_MATCH_ALL 비트 집합이 없 으면 QueryDirectory.InitialQuery 멤버가 설정됩니다.
성공하면 네트워크 미니 리디렉션자는 RX_CONTEXT 구조체의 Info.LengthRemaining 멤버를 Info.Length 멤버로 설정하여 반환된 파일 정보의 길이를 뺀 값으로 설정해야 합니다. MRxQueryFileInfo 호출에 성공하면 RDBSS는 IRP의 IoStatus.Information 멤버를 IrpSp-Parameters.QueryFile.Length>로 설정하여 RX_CONTEXT Info.LengthRemaining 멤버를 뺀 값입니다.
RDBSS는 IrpSp-Flags> 집합의 SL_INDEX_SPECIFIED 비트를 사용하는 요청을 지원하지 않습니다. 네트워크 미니 리디렉션자는 SL_INDEX_SPECIFIED 비트의 IrpSp-Flags>가 설정된 MRxQueryFileInfo에 대한 호출을 받지 않습니다.
요구 사항
대상 플랫폼 |
데스크톱 |
헤더 |
Mrx.h(Mrx.h 포함) |