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


Функция NdisOpenFile (ndis.h)

Функция NdisOpenFile возвращает дескриптор для открытого файла.

Синтаксис

void NdisOpenFile(
  [out] PNDIS_STATUS          Status,
  [out] PNDIS_HANDLE          FileHandle,
  [out] PUINT                 FileLength,
  [in]  PNDIS_STRING          FileName,
  [in]  NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
);

Параметры

[out] Status

Указатель на переменную, предоставленную вызывающим методом, в которой эта функция возвращает состояние операции открытия файла, которое может иметь одно из следующих значений:

NDIS_STATUS_SUCCESS

Дескриптор в FileHandle действителен для последующего вызова NdisMapFile.

NDIS_STATUS_FILE_NOT_FOUND

В указанной строке fileName не указано имя, найденное в пространстве имен системного объекта.

NDIS_STATUS_RESOURCES

NDIS не удалось выделить ресурсы, необходимые для открытия файла, и выделить буфер для содержимого файла.

NDIS_STATUS_ERROR_READING_FILE

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

[out] FileHandle

Указатель на переменную, предоставленную вызывающим, в которой эта функция возвращает дескриптор открытого файла в случае успешного вызова.

[out] FileLength

Указатель на переменную, предоставленную вызывающей стороны, в которой эта функция записывает количество байтов данных в открытом файле, если вызов будет выполнен успешно.

[in] FileName

Указатель на тип NDIS_STRING, содержащий инициализированную подсчитываемую строку в системной кодировке по умолчанию, именующую открываемый файл. Для драйверов Windows 2000 и более поздних версий эта строка содержит символы Юникода. То есть для Windows 2000 и более поздних версий NDIS определяет тип NDIS_STRING как тип UNICODE_STRING .

[in] HighestAcceptableAddress

Самый высокий физический адрес, в котором могут храниться данные файла, или указывает -1, если драйвер не накладывает ограничений.

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

None

Remarks

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

Драйвер мини-порта должен вызывать NdisOpenFile только из функции MiniportInitializeEx .

Когда NdisOpenFile возвращается, драйвер мини-порта может получить доступ к данным файла, вызвав NdisMapFile. Он может вызывать функцию NdisUnmapFile для вывода файла на страницу, чтобы не потреблять ресурсы без необходимости, пока драйвер не обращается к данным файла. По завершении использования файла MiniportInitializeEx должен вызвать
Функция NdisCloseFile.

Примечание

NdisOpenFile, NdisCloseFile, NdisMapFile и NdisUnmapFile не поддерживаются в ARM64. В ARM64 замените эти функции вызовами ZwCreateFile, ZwReadFile или другими аналогичными операциями.

Требования

Требование Значение
Минимальная версия клиента Поддерживается для драйверов NDIS 6.0 и NDIS 5.1 (см. раздел NdisOpenFile (NDIS 5.1)) в Windows Vista. Поддерживается для драйверов NDIS 5.1 (см. раздел NdisOpenFile (NDIS 5.1)) в Windows XP.
Целевая платформа Универсальное
Верхняя часть ndis.h (включая Ndis.h)
Библиотека Ndis.lib
IRQL PASSIVE_LEVEL
Правила соответствия DDI Irql_Miscellaneous_Function(ndis)

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

MiniportInitializeEx

NdisCloseFile

NdisMapFile

NdisUnmapFile

UNICODE_STRING