PHW_RECEIVE_DEVICE_SRB回呼函式 (strmini.h)
minidriver 提供的例程會處理套用至整個驅動程式的類別驅動程式要求,例如初始化裝置,或在裝置內開啟數據流。
語法
PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;
void PhwReceiveDeviceSrb(
[in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}
參數
[in] SRB
數據流要求區塊的指標。
傳回值
無
備註
minidriver 會在其HW_INITIALIZATION_DATA結構的 HwReceivePacket 成員中指定這個例程。 minidriver 會藉由呼叫 StreamClassRegisterMinidriver 將這個結構傳遞給類別驅動程式。
StrMiniReceiveDevicePacket 必須處理套用至整個驅動程式的類別驅動程式要求,例如初始化裝置,或在裝置內開啟數據流。 類別驅動程式會以數據流要求區塊的指標形式傳遞其資訊。 類別驅動程式會填入數據流要求區塊中的部分專案。 完成例程時,迷你驅動程式必須填入類別驅動程式將用來繼續處理的其他資訊。
完成處理要求時,迷你驅動程式會呼叫 StreamClassDeviceNotification (DeviceRequestComplete、 pSRB-HwDeviceExtension>、 pSRB) 將結構傳遞回類別驅動程式。
請參閱 Stream 類別 SRB 參考中相關 SRB 程式代碼的相關信息。
當迷你驅動程式完成要求的處理時,它會在 pSrb-Status> 中輸入作業的傳回狀態。 迷你驅動程式應該輸入STATUS_SUCCESS,以正常順利處理。 如果 minidriver 不支援該 Command 值,它應該將 pSrb-Status> 設定為 STATUS_NOT_IMPLEMENTED。 如果裝置硬體錯誤導致迷你驅動程序無法完成要求,它應該將 pSrb-Status> 設定為 STATUS_IO_DEVICE_ERROR。 在特定情況下,例程使用的其他錯誤碼會以特定的 Command 程式代碼列出。
請注意,類別驅動程式會將讀取和寫入要求傳遞給 StrMiniReceiveStreamDataPacket 例程。
minidriver 會註冊其 StrMiniReceiveStreamControlPacket 例程,如下所示:當類別驅動程式開啟數據流時,它會將 SRB_OPEN_STREAM 要求區塊傳遞給 minidriver 的 StrMiniReceiveDevicePacket 例程。 要求封包的 StreamObject 成員會指向 HW_STREAM_OBJECT。 minidriver 會將 StreamObject 指向之結構的 ReceiveControlPacket 成員設定為 minidriver 的 StrMiniReceiveControlPacket 例程。
完成處理要求時,迷你驅動程式會呼叫 StreamClassStreamNotification (StreamRequestComplete、 pSRB-StreamObject>、 pSRB) 將結構傳回類別驅動程式。
請參閱 Stream 類別 SRB 參考中相關 SRB 程式代碼的相關信息。
當迷你驅動程式完成要求的處理時,它會在 pSrb-Status> 中輸入作業的傳回狀態。 迷你驅動程式應該輸入STATUS_SUCCESS,以正常順利處理。 如果 minidriver 不支援該 Command 值,它應該將 pSrb-Status> 設定為 STATUS_NOT_IMPLEMENTED。 如果裝置硬體錯誤導致迷你驅動程序無法完成要求,它應該將 pSrb-Status> 設定為 STATUS_IO_DEVICE_ERROR。 在特定情況下,例程使用的其他錯誤碼會以特定的 Command 程式代碼列出。
數據流類別驅動程式會呼叫 minidriver 的 StrMiniReceiveStreamDataPacket 例程來處理特定數據流的讀取和寫入要求。
minidriver 會註冊其 StrMiniReceiveStreamDataPacket 例程,如下所示:當類別驅動程式開啟數據流時,它會將 SRB_OPEN_STREAM 要求區塊傳遞給 minidriver 的 StrMiniReceiveDevicePacket 例程。 要求封包的 StreamObject 會指向 HW_STREAM_OBJECT。 minidriver 會將 pSrb-StreamObject> 指向之 結構的 ReceiveDataPacket 成員設定為 minidriver 的 StrMiniReceiveDataPacket 例程。
完成處理要求時,迷你驅動程式會呼叫 StreamClassStreamNotification (StreamRequestComplete、 pSRB-StreamObject>、 pSRB) 將結構傳回類別驅動程式。
請參閱 Stream 類別 SRB 參考中相關 SRB 程式代碼的相關信息。
當迷你驅動程式完成要求的處理時,它會在 pSrb-Status> 中輸入作業的傳回狀態。 迷你驅動程式應該輸入STATUS_SUCCESS,以正常順利處理。 如果 minidriver 不支援該 Command 值,它應該將 pSrb-Status> 設定為 STATUS_NOT_IMPLEMENTED。 如果裝置硬體錯誤導致迷你驅動程序無法完成要求,它應該將 pSrb-Status> 設定為 STATUS_IO_DEVICE_ERROR。 在特定情況下,例程使用的其他錯誤碼會以特定的 Command 程式代碼列出。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | strmini.h (包含 Strmini.h) |