Функция RxCreateSrvOpen (fcb.h)
RxCreateSrvOpen выделяет, инициализирует и вставляет новую структуру SRV_OPEN в структуры данных в памяти, используемые RDBSS. Если необходимо выделить новую структуру, она имеет пространство для структуры FOBX.
Синтаксис
PSRV_OPEN RxCreateSrvOpen(
[in] IN PV_NET_ROOT VNetRoot,
[in, out] IN OUT PFCB Fcb
);
Параметры
[in] VNetRoot
Указатель на структуру V_NET_ROOT.
[in, out] Fcb
Указатель на связанную структуру FCB.
Возвращаемое значение
RxCreateSrvOpen возвращает указатель на только что созданную структуру данных SRV_OPEN о успешном выполнении или null указателем на сбой.
Замечания
Подпрограмма RxCreateSrvOpen обычно не вызывается драйверами мини-перенаправления сети напрямую. RDBSS вызывает эту подпрограмму внутренне, когда пакет запроса ввода-вывода получается для IRP_MJ_CREATE и необходимо создать SRV_OPEN. Обычно этот IRP получается RDBSS в ответ на запрос приложения пользовательского режима, запрашивающего операцию создания файла в сетевой папке. Кроме того, для другого драйвера ядра может возникнуть такая ошибка IRP.
Перед вызовом RxCreateSrvOpenнеобходимо получить блокировку связанной структуры FCB в монопольном режиме.
RxCreateSrvOpen попытается использовать SRV_CALL, выделенную в рамках связанной структуры FCB, если она доступна. Если SRV_CALL, выделенный с помощью FCB, недоступен, то RxCreateSrvOpen выделяет новую структуру SRV_CALL.
Если связанный ФКБ является файлом на страницы, RxCreateSrvOpen выделяет нестраничную память пула при создании новой структуры данных SRV_OPEN. Если связанный ФКБ не является файлом на страницы, RxCreateSrvOpen выделяет память пула страниц при создании новой структуры данных SRV_OPEN.
Windows в настоящее время не разрешает наличие разбиения по страницам на удаленном компьютере.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | fcb.h (включая Mrxfcb.h, Fcb.h) |
IRQL | <= APC_LEVEL |