Функция 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) |