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 不支持 NdisOpenFile、NdisCloseFile、NdisMapFile 和 NdisUnmapFile。 在 ARM64 上,将这些函数替换为调用 ZwCreateFile、ZwReadFile或类似作。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 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) |