Condividi tramite


Funzione ChangerClassSendSrbSynchronous (mcd.h)

Il ChangerClassSendSrbSynchronous routine invia in modo sincrono un SRB a un dispositivo specificato.

Sintassi

NTSTATUS ChangerClassSendSrbSynchronous(
  [in] PDEVICE_OBJECT      DeviceObject,
  [in] PSCSI_REQUEST_BLOCK Srb,
  [in] PVOID               Buffer,
  [in] ULONG               BufferSize,
  [in] BOOLEAN             WriteToDevice
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo funzionale del dispositivo di destinazione.

[in] Srb

Puntatore a un blocco di richieste SCSI parzialmente inizializzato (SRB) da inviare al dispositivo di destinazione.

[in] Buffer

Specifica l'indirizzo del buffer a cui >databuffer deve puntare. ChangerClassSendSrbSynchronous crea un MDL per questo buffer e lo passa al driver di dispositivo di destinazione in IRP SRB.

[in] BufferSize

Specifica la lunghezza, espressa in byte, del buffer.

[in] WriteToDevice

Indica un'operazione di scrittura quando TRUE e l'operazione di lettura quando FALSE.

Valore restituito

Restituisce STATUS_SUCCESS se la funzione SRB viene trasmessa correttamente o se il codice di errore appropriato ha esito negativo o non può essere inviato per qualche motivo.

Osservazioni

I driver miniclasse changer possono chiamare questa routine del driver di classe in Microsoft Windows XP e nei sistemi operativi successivi. I driver miniclassi devono usare questa routine per inviare un SRB al driver di porta anziché chiamare direttamente la routine della libreria classpnp.sysClassSendSrbSynchrono us. Anche se classpnp.sys viene fornito con Windows Driver Kit (WDK), non è un'API supportata e i driver che chiamano direttamente le routine di questa libreria potrebbero non funzionare correttamente nelle versioni future.

ChangerClassSendSrbSynchronous completa l'inizializzazione della SRB parzialmente inizializzata, impostando i flag SRB con i valori indicati nell'oggetto dispositivo della destinazione. ChangerClassSendSrbSynchronous crea l'IRP usato per trasmettere il file SRB al dispositivo di destinazione, invia l'IRP, quindi gestisce il completamento di IRP.

Se l'IRP ha esito negativo e i dati della richiesta di rilevamento indicano che è necessario ritentare l'IRP, ChangerClassSendSrbSynchronous invierà nuovamente l'IRP.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione mcd.h (include Mcd.h, Ntddchgr.h)
libreria Mcd.lib

Vedere anche

SCSI_REQUEST_BLOCK