Функция NdisMapFile (ndis.h)
Функция NdisMapFile сопоставляет уже открытый файл с буфером, доступным для вызывающего объекта, если файл в настоящее время не сопоставлен.
Синтаксис
void NdisMapFile(
[out] PNDIS_STATUS Status,
[out] PVOID *MappedBuffer,
[in] NDIS_HANDLE FileHandle
);
Параметры
[out] Status
Указатель на указанную вызывающим переменную, в которой эта функция возвращает состояние операции сопоставления, которая может быть одной из следующих:
NDIS_STATUS_SUCCESS
Вызывающий объект имеет монопольный доступ к содержимому файла до вызова функции NdisUnmapFile.
NDIS_STATUS_ALREADY_MAPPED
Вызывающий объект не может получить доступ к содержимому файла в настоящее время.
[out] MappedBuffer
Указатель на указанную вызывающим переменную, в которой эта функция возвращает базовый виртуальный адрес сопоставленного содержимого файла или NULL.
[in] FileHandle
Дескриптор, возвращенный предыдущим вызовом функции NdisOpenFile.
Возвращаемое значение
Никакой
Замечания
NdisMapFile связывает диапазон виртуальных адресов с открытым файлом, чтобы драйвер смог получить доступ к содержимому файла. NdisMapFile позволяет в любое время выдаться только одно сопоставление определенного файла. Следовательно, успешный вызывающий объект получает монопольный доступ к данным файла, пока не вызывается NdisUnmapFile или функция NdisCloseFile.
Минипорт-драйвер может сопоставлять и распаковывать открытый файл по мере необходимости, используя чередующиеся вызовы NdisMapFile и NdisUnmapFile. Вызов NdisCloseFile освобождает FileHandle и освобождает буфер, содержащий содержимое файла.
Минипорт-драйвер может вызывать NdisMapFile только во время инициализации.