Partager via


PHW_RECEIVE_DEVICE_SRB fonction de rappel (strmini.h)

La routine fournie par minidriver gère les demandes de pilote de classe qui s’appliquent au pilote dans son ensemble, telles que l’initialisation de l’appareil ou l’ouverture d’un flux au sein de l’appareil.

Syntaxe

PHW_RECEIVE_DEVICE_SRB PhwReceiveDeviceSrb;

void PhwReceiveDeviceSrb(
  [in] IN PHW_STREAM_REQUEST_BLOCK SRB
)
{...}

Paramètres

[in] SRB

Pointeur vers le bloc de demande de flux.

Valeur de retour

None

Remarques

Le minidriver spécifie cette routine dans le membre HwReceivePacket de sa structure HW_INITIALIZATION_DATA . Le minidriver transmet cette structure au pilote de classe lorsqu’il s’inscrit lui-même en appelant StreamClassRegisterMinidriver.

StrMiniReceiveDevicePacket doit gérer les demandes de pilote de classe qui s’appliquent au pilote dans son ensemble, telles que l’initialisation de l’appareil ou l’ouverture d’un flux au sein de l’appareil. Le pilote de classe transmet ses informations sous la forme d’un pointeur vers un bloc de demande de flux. Le pilote de classe remplit certaines des entrées du bloc de demande de flux. Une fois la routine terminée, le minidriver doit fournir des informations supplémentaires que le pilote de classe utilisera pour poursuivre le traitement.

Une fois la gestion de la requête terminée, le minidriver transmet la structure au pilote de classe en appelant StreamClassDeviceNotification(DeviceRequestComplete, pSRB-HwDeviceExtension>, pSRB).

Pour plus d’informations sur les codes SRB pertinents, consultez Stream référence SRB de classe.

Lorsque le minidriver termine son traitement de la demande, il entre la status de retour de l’opération dans pSrb-Status>. Le minidriver doit entrer STATUS_SUCCESS pour un traitement normal réussi. Si le minidriver ne prend pas en charge cette valeur command, il doit définir pSrb-Status> sur STATUS_NOT_IMPLEMENTED. S’il existe une erreur matérielle de l’appareil qui empêche le minidriver de terminer la demande, il doit définir pSrb-Status> sur STATUS_IO_DEVICE_ERROR. D’autres codes d’erreur que la routine utilise dans des circonstances spécifiques sont répertoriés ci-dessus avec le code de commande spécifique.

Notez que le pilote de classe transmet les demandes de lecture et d’écriture à la routine StrMiniReceiveStreamDataPacket .

Le minidriver inscrit sa routine StrMiniReceiveStreamControlPacket comme suit : Lorsque le pilote de classe ouvre le flux, il transmet un bloc de requête SRB_OPEN_STREAM à la routine StrMiniReceiveDevicePacket du minidriver. Le membre StreamObject du paquet de requête pointe vers un HW_STREAM_OBJECT. Le minidriver définit le membre ReceiveControlPacket de la structure pointée par StreamObject sur la routine StrMiniReceiveControlPacket du minidriver.

Une fois la gestion de la requête terminée, le minidriver transmet la structure au pilote de classe en appelant StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Pour plus d’informations sur les codes SRB pertinents, consultez Stream référence SRB de classe.

Lorsque le minidriver termine son traitement de la demande, il entre la status de retour de l’opération dans pSrb-Status>. Le minidriver doit entrer STATUS_SUCCESS pour un traitement normal réussi. Si le minidriver ne prend pas en charge cette valeur command, il doit définir pSrb-Status> sur STATUS_NOT_IMPLEMENTED. S’il existe une erreur matérielle de l’appareil qui empêche le minidriver de terminer la demande, il doit définir pSrb-Status> sur STATUS_IO_DEVICE_ERROR. D’autres codes d’erreur que la routine utilise dans des circonstances spécifiques sont répertoriés ci-dessus avec le code de commande spécifique.

Le pilote de classe de flux appelle la routine StrMiniReceiveStreamDataPacket du minidriver pour gérer les demandes de lecture et d’écriture pour un flux spécifique.

Le minidriver enregistre sa routine StrMiniReceiveStreamDataPacket comme suit : Lorsque le pilote de classe ouvre le flux, il transmet un bloc de requête SRB_OPEN_STREAM à la routine StrMiniReceiveDevicePacket du minidriver. Le StreamObject du paquet de requête pointe vers un HW_STREAM_OBJECT. Le minidriver définit le membre ReceiveDataPacket de la structure pointée par pSrb-StreamObject> sur la routine StrMiniReceiveDataPacket du minidriver.

Une fois la gestion de la requête terminée, le minidriver transmet la structure au pilote de classe en appelant StreamClassStreamNotification(StreamRequestComplete, pSRB-StreamObject>, pSRB).

Pour plus d’informations sur les codes SRB pertinents, consultez Stream référence SRB de classe.

Lorsque le minidriver termine son traitement de la demande, il entre la status de retour de l’opération dans pSrb-Status>. Le minidriver doit entrer STATUS_SUCCESS pour un traitement normal réussi. Si le minidriver ne prend pas en charge cette valeur command, il doit définir pSrb-Status> sur STATUS_NOT_IMPLEMENTED. S’il existe une erreur matérielle de l’appareil qui empêche le minidriver de terminer la demande, il doit définir pSrb-Status> sur STATUS_IO_DEVICE_ERROR. D’autres codes d’erreur que la routine utilise dans des circonstances spécifiques sont répertoriés ci-dessus avec le code de commande spécifique.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête strmini.h (include Strmini.h)