Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
RxFsdDispatch реализует отправку драйвера файловой системы (FSD) для RDBSS для обработки пакета запросов ввода-вывода (IRP). Указатель на эту подпрограмму копируется в таблицу отправки драйвера устройства для драйвера мини-перенаправления сети RxDriverEntry при инициализации RDBSS.
Синтаксис
NTSTATUS RxFsdDispatch(
[in] IN PRDBSS_DEVICE_OBJECT RxDeviceObject,
[in] IN PIRP Irp
);
Параметры
[in] RxDeviceObject
Указатель на объект устройства RDBSS для этого мини-перенаправления сети.
[in] Irp
Указатель на обрабатываемый пакет запроса ввода-вывода.
Возвращаемое значение
RxFsdDispatch возвращает одно из следующих значений:
| Возвращаемый код | Описание |
|---|---|
| STATUS_INVALID_DEVICE_REQUEST | Запрос был выполнен в недопустимом объекте устройства. Например, эта ошибка возвращается, если объект файловой системы передается в качестве параметра RxDeviceObject. Это значение состояния указывает на сбой. |
| STATUS_OBJECT_NAME_INVALID | Был сделан недопустимый запрос на создание именованного канала или почтового объекта (MajorFunction член Irp был IRP_MJ_CREATE_MAILSLOT или IRP_MJ_CREATE_NAMED_PIPE). Это значение состояния указывает на сбой. |
| STATUS_PENDING | Был выполнен асинхронный запрос, и состояние запроса ожидается. |
| STATUS_SUCCESS | вызов RxFsdDispatch выполнен успешно. |
Замечания
RxFsdDispatch вызывается RDBSS для обработки пакета запросов ввода-вывода (IRP). Эти irPs обычно получаются RDBSS в ответ на запросы операций в пользовательском режиме приложения с запросом операций в файле. Кроме того, для другого драйвера ядра может возникнуть такая ошибка IRP.
Указатель на подпрограмму RxFsdDispatch копируется через таблицу диспетчера драйверов для драйвера мини-перенаправления сети при вызове подпрограммы RxDriverEnt ry для инициализации RDBSS.
В внутренней части RDBSS поддерживает два вектора отправки:
Распространенный вектор отправки для большинства операций.
Вектор частной диспетчеризации для операций FCB файлового устройства.
Если IRP является запросом IRP_MJ_CREATE, RxFsdDispatch будет использовать общий вектор отправки. Если IRP предназначен для операции с ФКБ объекта файла, RxFsdDispatch будет проверять, следует ли использовать частный вектор отправки. В противном случае для обработки IRP будет использоваться общий вектор диспетчера.
RxFsdDispatch вызывает внутренние подпрограммы для обработки стандартных IRPs, большинство из которых приводит к вызову одной из подпрограмм обратного вызова, реализованных драйвером мини-перенаправления сети.
Несколько IRP рассматриваются как специальные и обрабатываются внутренне RDBSS. Например, IRP_MJ_SYSTEM_CONTROL используется внутренне, если WMI включен. IRP_MJ_CREATE_MAILSLOT или IRP_MJ_CREATE_NAMED_PIPE запросы обрабатываются специально и отклоняются (возвращается ошибка STATUS_OBJECT_NAME_INVALID).
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Настольный |
| заголовка | mrx.h (включая Mrx.h, Rxstruc.h, Struchdr.h) |
| IRQL | <= APC_LEVEL |