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 及更高版本的驱动程序,此字符串包含 Unicode 字符。 也就是说,对于 Windows 2000 及更高版本,NDIS 将NDIS_STRING类型定义为 UNICODE_STRING 类型。

[in] HighestAcceptableAddress

可以存储文件数据的最高物理地址,或者指定驱动程序没有限制时 -1。

返回值

没有

言论

NdisOpenFile 打开磁盘文件,通常是驱动程序稍后下载以编程智能 NIC 的文件。 NdisOpenFile 还分配存储来保存驱动程序对 NdisMapFile 函数的后续调用的文件内容。

微型端口驱动程序应仅从 MiniportInitializeEx 函数调用 NdisOpenFile

NdisOpenFile 返回时,微型端口驱动程序可以通过调用 NdisMapFile来访问文件数据。 它可以调用 NdisUnmapFile 函数来分页文件,以便在驱动程序不访问文件数据时不会不必要的资源消耗资源。 使用完该文件后,MiniportInitializeEx 必须调用
NdisCloseFile 函数。

注意

ARM64 不支持 NdisOpenFileNdisCloseFileNdisMapFileNdisUnmapFile。 在 ARM64 上,将这些函数替换为调用 ZwCreateFileZwReadFile或类似作。

要求

要求 价值
最低支持的客户端 Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisOpenFile (NDIS 5.1)。 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 NdisOpenFile (NDIS 5.1)。
目标平台 普遍
标头 ndis.h (包括 Ndis.h)
Ndis.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 Irql_Miscellaneous_Function(ndis)

另请参阅

MiniportInitializeEx

NdisCloseFile

NdisMapFile

NdisUnmapFile

UNICODE_STRING