Процедура MRxCreate
ПодпрограммаMRxCreate вызывается RDBSS для запроса на создание объекта файловой системы с помощью сетевого мини-перенаправителя.
Синтаксис
PMRX_CALLDOWN MRxCreate;
NTSTATUS MRxCreate(
_Inout_ PRX_CONTEXT RxContext
)
{ ... }
Параметры
RxContext [in, out]
Указатель на структуру RX_CONTEXT. Этот параметр содержит IRP, запрашивающий операцию.
Возвращаемое значение
MRxCreate возвращает STATUS_SUCCESS об успешном выполнении или соответствующее значение NTSTATUS, например одно из следующих значений:
Код возврата | Описание |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Недостаточно ресурсов для завершения операции. |
STATUS_NETWORK_ACCESS_DENIED | Доступ к сети запрещен. Эта ошибка может быть возвращена, если сетевому мини-перенаправлению было предложено открыть новый файл в общей папке, доступной только для чтения. |
STATUS_NOT_IMPLEMENTED | Запрашиваемая функция, например удаленная загрузка или удаленный файл подкачки, не реализована. |
STATUS_NOT_SUPPORTED | Запрашиваемая функция, например расширенные атрибуты, не поддерживается. |
STATUS_OBJECT_NAME_COLLISION | Мини-перенаправлению сети было предложено создать уже существующий файл. |
STATUS_OBJECT_NAME_NOT_FOUND | Имя объекта не найдено. Эта ошибка может быть возвращена, если мини-перенаправлению сети было предложено открыть файл, который не существует. |
STATUS_OBJECT_PATH_NOT_FOUND | Путь к объекту не найден. Эта ошибка может быть возвращена, если был запрошен объект потока NTFS, а удаленная файловая система не поддерживает потоки. |
STATUS_REPARSE | Для обработки символьной ссылки требуется повторная обработка. |
STATUS_RETRY | Операция должна быть повторна. Эта ошибка может быть возвращена, если сетевой мини-перенаправитель столкнулся с нарушением общего доступа или ошибкой отказа в доступе. |
Комментарии
RDBSS вызывает MRxCreate , чтобы запросить, чтобы сетевой мини-перенаправитель открыл объект файловой системы по сети. Этот вызов выполняется RDBSS в ответ на получение запроса IRP_MJ_CREATE .
Перед вызовом MRxCreate RDBSS изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :
pRelevantSrvOpen имеет SRV_OPEN структуру.
Параметр Create.pSrvCall имеет SRV_CALL структуру.
Параметру Create.NtCreateParameters присваивается запрошенное NT_CREATE_PARAMETERS.
В контексте сетевого мини-перенаправителя объект файла ссылается на связанные структуры блока управления файлами (FCB) и расширения файлового объекта (FOBX). Существует соответствие "один к одному" между файловыми объектами и FOBX. Многие объекты файлов будут ссылаться на один и тот же FCB, который представляет один файл на удаленном сервере. Клиент может иметь несколько разных открытых запросов (запросов NtCreateFile) к одному и тому же FCB, и каждый из них создает новый объект файла. RDBSS и сетевые мини-перенаправители могут отправлять меньше запросов MRxCreate, чем полученные запросы NtCreateFile, фактически совместно используя структуру SRV_OPEN между несколькими FOBX.
Если запрос MRxCreate был для перезаписи файла и MRxCreate вернул STATUS_SUCCESS, RDBSS получит ресурс ввода-вывода подкачки и усетит файл. Если файл кэшируется диспетчером кэша, RDBSS обновит размеры диспетчера кэша с теми, которые только что получены с сервера.
Перед возвратом MRxCreate необходимо задать элемент CurrentIrp-IoStatus.Information> структуры RX_CONTEXT, на которую указывает параметр RxContext.
Требования
Целевая платформа |
Персональный компьютер |
Заголовок |
Mrx.h (включая Mrx.h) |