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


Метод 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

Указатель на указанную вызывающим объектом строку, null-terminated string, представляющую имя открываемого файла. Дополнительные сведения об этом элементе см. в параметре fileNameCreateFile в пакете SDK для Windows.

[in] DesiredAccess

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

[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 (include Wudfddi.h)
DLL WUDFx.dll

См. также

IWDFDevice2::CreateRemoteTarget

IWDFRemoteTarget

IWDFRemoteTarget::OpenRemoteInterface