Функция RxGetFileSizeWithLock (fcb.h)
RxGetFileSizeWithLock получает размер файла в структуре FCB с помощью блокировки, чтобы обеспечить согласованное чтение 64-разрядного значения.
Синтаксис
void RxGetFileSizeWithLock(
[in] IN PFCB Fcb,
[out] OUT PLONGLONG FileSize
);
Параметры
[in] Fcb
Указатель на структуру FCB.
[out] FileSize
Указатель, в котором файл размера файла будет храниться в выходных данных.
Возвращаемое значение
None
Remarks
Подпрограмма RxGetFileSizeWithLock обычно не вызывается драйверами мини-перенаправления сети напрямую. RDBSS вызывает эту подпрограмму внутри системы при получении пакета запроса ввода-вывода для IRP_MJ_QUERY_INFORMATION, IRP_MJ_SET_INFORMATION, IRP_MJ_READ или IRP_MJ_WRITE. Эти irP обычно получаются RDBSS в ответ на запросы операций с файлом приложения в пользовательском режиме. Такой IRP также может выдать другой драйвер ядра.
Эти irP обычно приводят к вызову одной из подпрограмм MRxQueryFileInfo, MRxQuerySdInfo, MRxLowIORead или MRxLowIOWrite , предоставляемых мини-перенаправлением сети.
RxGetFileSizeWithLock получает блокировку структуры FCB, затем считывает размер файла, а затем освобождает блокировку. Эта блокировка гарантирует, что размер файла будет защищен во время этой операции, так как размер файла составляет 64-разрядное количество, и для чтения на 32-разрядных процессорах требуется по крайней мере две инструкции.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | fcb.h (включая Mrxfcb.h, Fcb.h) |
IRQL | <= APC_LEVEL |