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 |