Partager via


Méthode IMFVirtualCamera::CreateSyncSemaphore (mfvirtualcamera.h)

Wrapper autour de la méthode IKsControl::KsEvent , qui active ou désactive un sémaphore.

Syntaxe

HRESULT CreateSyncSemaphore(
  REFGUID             kseventSet,
  ULONG               kseventId,
  ULONG               kseventFlags,
  HANDLE              semaphoreHandle,
  LONG                semaphoreAdjustment,
  IMFCameraSyncObject **cameraSyncObject
);

Paramètres

kseventSet

GUID représentant KSEVENT. Définir le champ.

kseventId

ULONG représentant le champ KSEVENT.Id .

kseventFlags

Ensemble d’indicateurs bit-wise or-ed représentant KSEVENT. Champ Indicateurs .

semaphoreHandle

Handle représentant KSEVENTDATA. Champ SemaphoreHandle.Semaphore .

semaphoreAdjustment

Valeur d’ajustement représentant KSEVENTDATA. Champ SemaphoreHandle.Adjustment .

cameraSyncObject

Paramètre de sortie qui reçoit une interface IMFSyncObject . L’appelant est responsable de la libération de cet objet.

Valeur retournée

Retourne une valeur HRESULT, y compris, mais sans s’y limiter, les valeurs suivantes :

Code d'erreur Description
S_OK Opération réussie

Notes

Cette méthode permet à l’appelant de créer un objet sémaphore entre l’appelant et la caméra virtuelle pour la synchronisation. L’implémentation de la caméra virtuelle reçoit un appel à IKsControl::KsEvent lorsque cette API est appelée. L’objet IMFCameraSyncObject résultant peut être utilisé pour bloquer l’événement à partir de la caméra virtuelle.

Lorsque l’objet IMFCameraSyncObject est obtenu, l’appelant peut choisir d’utiliser la méthode IMFCameraSyncObject::WaitOnSignal ou d’appeler WaitForSingleObjects ou WaitForMultipleObjects sur le HANDLE fourni à la méthode CreateSyncObject . L’appelant ne doit pas attendre les deux, car le signal de l’événement ne peut être défini qu’une seule fois par le pilote.

L’appelant doit appeler IMFCameraSyncObject::Shutdown lorsque l’objet de synchronisation n’est plus nécessaire, que l’opération d’attente ait réussi ou non.

Configuration requise

   
Client minimal pris en charge Windows Build 22000
En-tête mfvirtualcamera.h
Bibliothèque mfsensorgroup.lib
DLL mfsensorgroup.dll

Voir aussi

IKsControl::KsEvent

IMFCameraSyncObject

IMFCameraSyncObject::WaitOnSignal

WaitForSingleObject

WaitForMultipleObjects