MINIPORT_SYNCHRONOUS_OID_REQUEST函式 (ndis.h)
NDIS 會呼叫迷你埠驅動程式的 MiniportSynchronousOidRequest 回呼函式來發出同步 OID 要求。
語法
NDIS_STATUS MINIPORT_SYNCHRONOUS_OID_REQUEST(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] NDIS_OID_REQUEST *OidRequest
);
參數
[in] MiniportAdapterContext
迷你埠驅動程式在其 MiniportInitializeEx 函式中配置的內容區域句柄。 迷你埠驅動程式會使用此內容區域來維護迷你埠配接器的狀態資訊。
[in] OidRequest
包含要處理之迷你埠驅動程式之緩衝區和要求封包之 NDIS_OID_REQUEST 結構的指標。 根據要求,驅動程式會傳回所提供結構中所要求的資訊。
傳回值
MiniportSynchronousOidRequest 可以傳回下列其中一個狀態值:
傳回碼 | Description |
---|---|
|
迷你埠驅動程式會依照要求設定或取得數據。 |
|
指定 OidRequest 的要求無效或無法辨識。 |
|
已辨識 OidRequest 的要求,但迷你埠驅動程序不支援它。 |
|
OidRequest 提供的緩衝區太小,無法保存要求的數據。 |
|
在 OidRequest 之 NDIS_OID_REQUEST 結構之 InformationBufferLength 成員中指定的值對於指定的 OID_Xxx 程式代碼而言不正確。 |
|
在 OidRequest 上為要求指定的一或多個參數無效。 |
|
迷你埠驅動程式會提供具有後續狀態指示的 OID 完成狀態。 除非特定的 OID 允許,否則迷你埠驅動程式無法傳回NDIS_STATUS_INDICATION_REQUIRED。 若要判斷是否允許此狀態,請參閱 OID 參考頁面。 如需NDIS_STATUS_INDICATION_REQUIRED的詳細資訊,請參閱 NDIS_OID_REQUEST 和 NDIS_STATUS_INDICATION。 |
|
呼叫 之後 MiniportDevicePnPEventNotify 函式表示意外移除,NDIS 稱為驅動程式的 MiniportHaltEx 函式。 如果驅動程式在 NDIS 呼叫 MiniportHaltEx 之前收到任何 OID 要求,它應該會立即完成這類要求,且狀態值為 NDIS_STATUS_NOT_ACCEPTED。
在意外移除之後,不一定需要迷你埠驅動程式傳回所有 OID 的NDIS_STATUS_NOT_ACCEPTED,但這麼做有助於說明呼叫失敗的原因。 |
備註
MiniportSynchronousOidRequest 是選擇性函式。 如果迷你埠驅動程序處理同步 OID 要求,則會註冊此函式。 當驅動程式呼叫 NdisMRegisterMiniportDriver 函式時,會使用 NDIS_MINIPORT_DRIVER_CHARACTERISTICS 結構的 SynchronousOidRequestHandler 成員,指定 MiniportSynchronousOidRequest 進入點。
迷你埠驅動程式不得從 MiniportSynchronousOidRequest 傳回NDIS_STATUS_PENDING或NDIS_STATUS_REQUEST_ABORTED。 同步 OID 要求無法畫筆或取消。
迷你埠驅動程式可能會在 NDIS 呼叫 MiniportDevicePnPEventNotify 之後傳回NDIS_STATUS_NOT_ACCEPTED,以通知驅動程式裝置的意外移除。 不過,如果可以這麼做,迷你埠驅動程式仍可完成具有不同狀態代碼的 OID 要求。 如需詳細資訊,請參閱每個 OID 的特定檔。
迷你埠驅動程序預期會快速完成同步 OID 要求,而不會封鎖、等候或睡眠。 同步 OID 要求僅用於低延遲作業,而迷你埠驅動程式應該努力在數毫秒內完成。 大部分的 OID 要求都會傳遞至 MiniportOidRequest,這允許畫筆或等候較長的持續時間。
NDIS 不會針對彼此串行化同步 OID 要求、針對其他 OID 要求、 MiniportPause、 MiniportResetEx 或電源轉換。 迷你埠驅動程式負責實作自己的同步處理,以及失敗要求一次無法順利處理的要求。
NDIS 會針對 MiniportHaltEx串行化同步 OID要求;NDIS 保證在叫用 MiniportHaltEx 之後,不會有任何同步 OID 要求作用中。
實作 NDIS 選擇性暫停的迷你埠驅動程式與同步 OID 不相容,而且不得註冊 MiniportSynchronousOidRequest 處理程式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 (版本 1709) |
目標平台 | Windows |
標頭 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |