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


Метод IWDFRemoteTarget::OpenFileByName (wudfddi.h)

[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. В UMDF 1 новые функции не добавляются, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с UMDF.]

Метод OpenFileByName открывает удаленный целевой объект ввода-вывода , который является файлом.

Синтаксис

HRESULT OpenFileByName(
  [in]           PCWSTR                      pszFileName,
  [in]           DWORD                       DesiredAccess,
  [in, optional] PUMDF_IO_TARGET_OPEN_PARAMS pOpenParams
);

Параметры

[in] pszFileName

Указатель на поставляемую вызывающим элементом строку с пустым завершением, представляющую имя открываемого файла. Дополнительные сведения об этом элементе см. в параметре FileNameэлемента CreateFile в Windows SDK.

[in] DesiredAccess

Битовая маска, указывающая требуемый доступ вызывающего абонента к файлу. Дополнительные сведения об этом элементе см. в параметре dwDesiredAccessэлемента CreateFile в Windows SDK.

[in, optional] pOpenParams

Указатель на структуру UMDF_IO_TARGET_OPEN_PARAMS , выделенную вызывающим объектом, которая содержит дополнительные параметры. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

При успешном выполнении операции OpenFileByName возвращает S_OK. В противном случае метод может вернуть следующее значение:

Код возврата Описание
E_OUTOFMEMORY
Попытка платформы выделить память завершилась сбоем.
 

Этот метод может возвращать одно из других значений, содержащихся в Winerror.h.

Средство проверки платформы сообщает об ошибке, если платформе не удается открыть файл.

Комментарии

Драйвер может использовать OpenFileByName для открытия файла, если стек драйверов, к которому принадлежит драйвер, не поддерживает устройство файла. Используйте IWDFFileHandleTargetFactory::CreateFileHandleTarget , чтобы открыть файл, если стек драйверов, к которому принадлежит драйвер, поддерживает устройство файла.

Указанный файл должен быть доступен учетной записи, которая загрузила драйвер на основе UMDF, который обычно является учетной записью локальной службы. Однако если драйвер использует олицетворение при вызове OpenFileByName, файл должен быть доступен для олицетворенной учетной записи.

Не вызывайте OpenFileByName , чтобы открыть удаленный целевой объект для объекта управляющего устройства. Вместо этого откройте устройство управления напрямую, вызвав CreateFile.

Дополнительные сведения о методе OpenFileByName и удаленных целевых объектах ввода-вывода см. в разделе Общие целевые объекты ввода-вывода в UMDF.

Примеры

В следующем примере кода создается удаленный целевой объект и открывается существующий файл с доступом только для чтения.

UMDF_IO_TARGET_OPEN_PARAMS openParams;
HRESULT hr;

//
// Create a new remote target object and provide a callback 
// object to handle remote target events.
//
CComPtr<IWDFRemoteTarget> fxTarget;
hr = FxDevice->CreateRemoteTarget(MyRemoteTargetIUnknown,
                                  fxRemoteInterface,
                                  &fxTarget);
if (FAILED(hr)) goto Error;

//
// Open existing file for read-only access.
//
openParams.dwShareMode = 0;
openParams.dwCreationDisposition = OPEN_EXISTING;
openParams.dwFlagsAndAttributes = FILE_ATTRIBUTE_READONLY;

hr = fxTarget->OpenFileByName(FILE_PATH,
                              GENERIC_READ,
                              &openParams);
 

Требования

Требование Значение
Дата окончания поддержки Недоступно в UMDF 2.0 и более поздних версиях.
Целевая платформа Персональный компьютер
Минимальная версия UMDF 1,9
Верхняя часть wudfddi.h (включая Wudfddi.h)
DLL WUDFx.dll

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

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface