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


Системные ЕЦП

[!ПРИМЕЧАНИЕ]

Некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

На этой странице перечислены и описываются системные дополнительные параметры создания (ECP). Операционная система определяет эти ECP в файле заголовка Ntifs.h .

Эти системные ЕЦП присоединяют указанные дополнительные сведения к операции IRP_MJ_CREATE в файле. Элементы стека файловой системы могут запрашивать ECPs для получения дополнительных сведений.

Как правило, фильтр, который обрабатывает операцию IRP_MJ_CREATE в файле, а затем передает файл вниз к фильтрам ниже, он не должен присоединять и спуфинировать любой из системных ECPs к операции IRP_MJ_CREATE в файле.

Аналогичным образом драйвер режима ядра, который обрабатывает и выдает IRP_MJ_CREATE операции с файлами, не должны присоединять и подделывать какие-либо системные ecPs к IRP_MJ_CREATE операциям с файлами.

Драйверы фильтров должны учитывать системные ЕЦП, доступные только для чтения. Их следует использовать для получения только информации.

Одним из исключений, ограничивающих драйвер фильтра при присоединении любого из следующих системных ecPs, является то, когда драйвер фильтра реализует многоуровневую файловую систему. Это делается путем владения объектами файлов и путем выдачи собственных IRP_MJ_CREATE операций с файлами под фильтром, в ответ на операцию IRP_MJ_CREATE в файле, который службы драйвера фильтра выполняются в своих собственных файлах. Такой драйвер фильтра должен распространять все списки структур контекста ECP_LIST из исходной IRP_MJ_CREATE операции в файле к операциям IRP_MJ_CREATE, которые драйвер фильтра выдает под ним. Распространяя эти списки ECP, драйвер фильтра гарантирует, что все фильтры под фильтром, который выдает операции IRP_MJ_CREATE , осведомлены о контексте исходной операции IRP_MJ_CREATE .

ECP GUID Структура контекста ECP и значение
ECP_TYPE_CLFS_CREATE_CONTAINER GUID, используемый для идентификации структуры контекста CREATE_REDIRECTION_ECP_CONTEXT ECP. Этот ECP можно отправить в NTFS, чтобы вставить новый общий контейнер файловой системы журнала (CLFS) во время подключения тома.
ECP_TYPE_IO_STOP_ON_SYMLINK_FILTER_GUID GUID, определяющий структуру контекста IO_STOP_ON_SYMLINK_FILTER_ECP_v0 ECP. Этот ECP ограничивает поведение IO_STOP_ON_SYMLINK только для выполнения указанных тегов повторного выполнения.
ECP_TYPE_OPEN_REPARSE_GUID GUID, определяющий структуру контекста OPEN_REPARSE_LIST ECP. Этот ECP поддерживает открытие определенных точек повторного анализа без подавления поведения повторного анализа для всех классов точек повторного анализа.
GUID_ECP_ATOMIC_CREATE GUID, определяющий структуру контекста ATOMIC_CREATE_ECP_CONTEXT ECP. Этот ECP позволяет выполнять некоторые дополнительные операции в файле атомарно во время создания.
GUID_ECP_CLOUDFILES_ATTRIBUTION GUID, определяющий ECP для облачных файлов, атрибуция.
GUID_ECP_CREATE_REDIRECTION GUID, используемый для идентификации ECP, который можно отправить для запроса состояния перенаправления файла для определенной операции создания.
GUID_ECP_CSV_DOWN_LEVEL_OPEN GUID, определяющий структуру контекста CSV_DOWN_LEVEL_OPEN_ECP_CONTEXT ECP. Файловая система общих томов кластера (CSVFS) отправляет этот ECP в узел метаданных (MDS) и содержит сведения о типе создания.
GUID_ECP_CSV_QUERY_FILE_REVISION GUID, определяющий структуру контекста CSV_QUERY_FILE_REVISION_ECP_CONTEXT ECP. Этот ECP можно отправить в CSVFS, чтобы запросить номер редакции файла.
GUID_ECP_CSV_QUERY_FILE_REVISION_FILE_ID_128 GUID, определяющий структуру контекста CSV_QUERY_FILE_REVISION_ECP_CONTEXT_FILE_ID_128 ECP. Этот ECP можно отправить в CSVFS, чтобы запросить номер редакции файла.
GUID_ECP_CSV_SET_HANDLE_PROPERTIES GUID, определяющий структуру контекста CSV_SET_HANDLE_PROPERTIES_ECP_CONTEXT ECP. Этот ECP можно отправить в CSVFS, чтобы задать свойства о том, как он должен обрабатывать операции ввода-вывода, поступающие в этот открытый.
GUID_ECP_DUAL_OPLOCK_KEY GUID, определяющий структуру контекста двойного OPLOCK_KEY_ECP_CONTEXT ECP. Как и структура OPLOCK_KEY_ECP_CONTEXT, двойной OPLOCK_KEY_ECP_CONTEXT используется для присоединения ключа oplock к открытому запросу файла. При использовании двойного OPLOCK_KEY_ECP_CONTEXT родительский ключ также можно задать для предоставления оплока для каталога целевого файла.
GUID_ECP_IO_DEVICE_HINT GUID, определяющий структуру IO_DEVICE_HINT_ECP_CONTEXT . Подсказки устройств используются для поддержки драйверов мини-фильтра поставщика имен для отслеживания целевого объекта повторного анализа на новое устройство.
GUID_ECP_NETWORK_APP_INSTANCE GUID, определяющий структуру контекста NETWORK_APP_INSTANCE_ECP_CONTEXT ECP. Клиентское приложение в отказоустойчивом кластере может иметь набор файлов, открытых на узле в кластере. Объекты файлов помечены приложением идентификатором экземпляра в структуре NETWORK_APP_INSTANCE_ECP_CONTEXT . При отработе отказа дополнительный узел может проверить доступ клиентского приложения к открытым файлам с идентификатором ранее кэшированного экземпляра приложения.
GUID_ECP_NETWORK_APP_INSTANCE_VERSION GUID, определяющий структуру NETWORK_APP_INSTANCE_VERSION_ECP_CONTEXT , которая является контекстом ECP приложения для предоставления идентификатора экземпляра. Этот ECP должен сопровождать NETWORK_APP_INSTANCE_ECP_CONTEXT (GUID_ECP_NETWORK_APP_INSTANCE), чтобы быть допустимым.
GUID_ECP_NETWORK_OPEN_CONTEXT ИДЕНТИФИКАТОР GUID, определяющий структуру контекста NETWORK_OPEN_ECP_CONTEXT ECP и используемый для подключения дополнительных сведений для сетевых перенаправлений. Этот GUID также определяет структуру NETWORK_OPEN_ECP_CONTEXT_V0 драйверов, работающих в Windows 7 и более поздних версиях Windows, и которые должны интерпретировать контексты ECP сети в файлах, которые находятся в Windows Vista.
GUID_ECP_NFS_OPEN GUID, определяющий структуру NFS_OPEN_ECP_CONTEXT . Сервер сетевой файловой системы (NFS) подключает структуру NFS_OPEN_ECP_CONTEXT к открытому запросу на файл. Сервер NFS использует этот GUID в любом открытом запросе файла, который выполняет сервер NFS для удовлетворения клиентского запроса. Затем стек файловой системы может определить, подключен ли NFS_OPEN_ECP_CONTEXT к открытому запросу на файл. На основе сведений в NFS_OPEN_ECP_CONTEXT стек файловой системы может определить клиент, запрашивающий открытие файла и почему.
GUID_ECP_OPEN_PARAMETERS GUID, определяющий структуру контекста ECP_OPEN_PARAMETERS ECP. Этот ECP позволяет вызывающей стороне указать назначение открытого файла без вмешательства в существующие дескрипторы и (или) оппортунистические блокировки (оплоки) в файле.
GUID_ECP_OPLOCK_KEY GUID, определяющий структуру контекста OPLOCK_KEY_ECP_CONTEXT ECP и используемый для присоединения ключа oplock к открытому запросу на файл. Ключ oplock позволяет приложению открывать несколько дескрипторов в одном потоке без нарушения собственной блокировки приложения. Дополнительные сведения о блокировках и ключах оплока см. в обзоре семантики Oplock.
GUID_ECP_PREFETCH_OPEN GUID, определяющий структуру контекста PREFETCH_OPEN_ECP_CONTEXT ECP. Предварительная версия — это компонент ОС, который тесно интегрирован с диспетчером кэша и диспетчером памяти, чтобы сделать доступ к диску более эффективным и, следовательно, повысить производительность. Если другие компоненты препятствуют предварительному выбору, производительность системы снижается и может привести к взаимоблокировке. Поэтому префетчер присоединяет структуру PREFETCH_OPEN_ECP_CONTEXT к файлу, чтобы сообщить, что префетчер выполняет открытый запрос к файлу. Этот открытый запрос указывается членом контекста PREFETCH_OPEN_ECP_CONTEXT. Другие компоненты, такие как драйверы фильтров файловой системы, могут определить, присоединены ли PREFETCH_OPEN_ECP_CONTEXT к файлу, а затем выполнить соответствующие действия.
GUID_ECP_QUERY_ON_CREATE GUID, определяющий ECP для получения сведений о файле запроса при создании.
GUID_ECP_RKF_BYPASS GUID, определяющий структуру контекста RKF_BYPASS_ECP_CONTEXT ECP.
GUID_ECP_SRV_OPEN GUID, определяющий структуру контекста SRV_OPEN_ECP_CONTEXT ECP. Сервер присоединяет структуру SRV_OPEN_ECP_CONTEXT к открытому запросу на файл. Сервер использует этот GUID для любого открытого запроса на файл, который сервер делает для удовлетворения условного запроса клиента. Затем стек файловой системы может определить, подключен ли SRV_OPEN_ECP_CONTEXT к открытому запросу на файл. На основе сведений в SRV_OPEN_ECP_CONTEXT стек файловой системы может определить клиент, запрашивающий открытие файла и почему.
GUID_ECP_TYPE_VETO_BINDING Определяет структуру контекста VETO_BINDING_ECP_CONTEXT ECP. Этот ECP можно использовать для вето на привязку ссылки на секцию загрузки системы. Доступно начиная с Windows 11 версии 24H2.