PFNUSBCAMD_WaitOnDeviceEvent funzione di callback (usbcamdi.h)
Il servizio USBCAMD_WaitOnDeviceEvent viene usato per eseguire una lettura dalla pipe di interrupt se la fotocamera ha una pipe di interrupt per le notifiche degli eventi esterni.
Sintassi
PFNUSBCAMD_WaitOnDeviceEvent PfnusbcamdWaitondeviceevent;
NTSTATUS PfnusbcamdWaitondeviceevent(
[in] PVOID DeviceContext,
[in] ULONG PipeIndex,
[in] PVOID Buffer,
[in] ULONG BufferLength,
[in] PCOMMAND_COMPLETE_FUNCTION EventComplete,
[in] PVOID EventContext,
[in] BOOLEAN LoopBack
)
{...}
Parametri
[in] DeviceContext
Puntatore al contesto specifico del dispositivo.
[in] PipeIndex
Specifica l'indice della pipe di interrupt.
[in] Buffer
Puntatore al buffer di lettura.
[in] BufferLength
Lunghezza del buffer di lettura, in byte.
[in] EventComplete
Puntatore a un minidriver della fotocamera definito CommandCompleteFunction, che viene chiamato quando viene completata la lettura dell'interrupt Questo valore può essere NULL.
[in] EventContext
Puntatore a un blocco di memoria, passato come argomento al minidriver della fotocamera definito CommandCompleteFunction.
[in] LoopBack
Specifica se USBCAMD deve inviare di nuovo un'altra richiesta di lettura alla pipe di interrupt ogni volta che viene completata una lettura di interrupt. Impostare su TRUE
Valore restituito
USBCAMD_WaitOnDeviceEvent restituisce STATUS_SUCCESS se la chiamata ha avuto esito positivo. Altri codici di errore possibili includono:
Codice restituito | Descrizione |
---|---|
STATUS_FILE_CLOSED | Il dispositivo è stato rimosso. |
STATUS_INVALID_PARAMETER | USBCAMD può restituire STATUS_INVALID_PARAMETER per diversi motivi, tra cui: il valore passato nell'argomento PipeIndex non è valido, il tipo della pipe specificata dall'argomento PipeIndex rappresenta un tipo non valido di pipe, una richiesta di lettura/scrittura bulk già esistente o l'argomento Buffer è NULL. La lunghezza specificata nell'argomento BufferLength è inferiore alla dimensione massima del pacchetto. |
STATUS_PENDING | L'elemento di lavoro dell'evento viene posticipato. |
STATUS_INSUFFICIENT_RESOURCES | Risorse insufficienti per allocare un elemento di lavoro da leggere dalla pipe. |
Commenti
Lo scenario di utilizzo tipico per questa funzione è una fotocamera con un pulsante snapshot e una pipe di interruzione associata al pulsante. Quando un utente preme il pulsante snapshot, la richiesta di lettura sulla pipe di interrupt viene soddisfatta e viene richiamato il minidriver della fotocamera. Se il minidriver della fotocamera imposta USBCAMD_CamControlFlag_EnableDeviceEvents nell'argomento CamControlFlag durante la chiamata USBCAMD_InitializeNewInterface , il monitoraggio STI riceverà anche una notifica dell'evento snapshot.
USBCAMD_WaitOnDeviceEvent non è disponibile in USBCAMD versione 1.0.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | usbcamdi.h (include Usbcamdi.h) |