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 或其他類似的作業取代這些函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 支援 NDIS 6.0 和 NDIS 5.1 驅動程式 (請參閱 Windows Vista 中的 NdisOpenFile (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 NdisOpenFile (NDIS 5.1) ) 。 |
目標平台 | Universal |
標頭 | ndis.h (包括 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | Irql_Miscellaneous_Function (ndis) |