Поделиться через


Процедура 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)

См. также раздел

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend