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, chiamato quando l'interrupt letto viene completato 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 nuovamente 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 oppure 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. |
Osservazioni
Lo scenario di utilizzo tipico per questa funzione è una fotocamera con un pulsante snapshot e una pipe di interrupt 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.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Desktop |
intestazione | usbcamdi.h (include Usbcamdi.h) |