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 或其他類似的作業取代這些函式。

規格需求

需求
最低支援的用戶端 支援 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)

另請參閱

MiniportInitializeEx

NdisCloseFile

NdisMapFile

NdisUnmapFile

UNICODE_STRING