共用方式為


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
NDIS_STATUS_SUCCESS
迷你埠驅動程式會依照要求設定或取得數據。
NDIS_STATUS_INVALID_OID
指定 OidRequest 的要求無效或無法辨識。
NDIS_STATUS_NOT_SUPPORTED
已辨識 OidRequest 的要求,但迷你埠驅動程序不支援它。
NDIS_STATUS_BUFFER_TOO_SHORT
OidRequest 提供的緩衝區太小,無法保存要求的數據。
NDIS_STATUS_INVALID_LENGTH
OidRequest 之 NDIS_OID_REQUEST 結構之 InformationBufferLength 成員中指定的值對於指定的 OID_Xxx 程式代碼而言不正確。
NDIS_STATUS_INVALID_DATA
OidRequest 上為要求指定的一或多個參數無效。
NDIS_STATUS_INDICATION_REQUIRED
迷你埠驅動程式會提供具有後續狀態指示的 OID 完成狀態。 除非特定的 OID 允許,否則迷你埠驅動程式無法傳回NDIS_STATUS_INDICATION_REQUIRED。 若要判斷是否允許此狀態,請參閱 OID 參考頁面。 如需NDIS_STATUS_INDICATION_REQUIRED的詳細資訊,請參閱 NDIS_OID_REQUESTNDIS_STATUS_INDICATION
NDIS_STATUS_NOT_ACCEPTED
呼叫 之後 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 要求、 MiniportPauseMiniportResetEx 或電源轉換。 迷你埠驅動程式負責實作自己的同步處理,以及失敗要求一次無法順利處理的要求。

NDIS 會針對 MiniportHaltEx串行化同步 OID要求;NDIS 保證在叫用 MiniportHaltEx 之後,不會有任何同步 OID 要求作用中。

實作 NDIS 選擇性暫停的迷你埠驅動程式與同步 OID 不相容,而且不得註冊 MiniportSynchronousOidRequest 處理程式。

規格需求

需求
最低支援的用戶端 Windows 10 (版本 1709)
目標平台 Windows
標頭 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另請參閱

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

NDIS_MINIPORT_DRIVER_CHARACTERISTICS

NDIS_OID_REQUEST

NDIS_STATUS_INDICATION

NdisMRegisterMiniportDriver

NDIS 6.80 中的同步 OID 要求介面