Condividi tramite


Funzione KsCreateFilterFactory (ks.h)

La funzione** KsCreateFilterFactory** aggiunge una factory di filtro a un determinato dispositivo.

Sintassi

KSDDKAPI NTSTATUS KsCreateFilterFactory(
  [in]            PDEVICE_OBJECT            DeviceObject,
  [in]            const KSFILTER_DESCRIPTOR *Descriptor,
  [in, optional]  PWSTR                     RefString,
  [in, optional]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]            ULONG                     CreateItemFlags,
  [in, optional]  PFNKSFILTERFACTORYPOWER   SleepCallback,
  [in, optional]  PFNKSFILTERFACTORYPOWER   WakeCallback,
  [out, optional] PKSFILTERFACTORY          *FilterFactory
);

Parametri

[in] DeviceObject

Puntatore a una struttura DEVICE_OBJECT per cui aggiungere una factory di filtro.

[in] Descriptor

Puntatore a un KSFILTER_DESCRIPTOR che descrive le caratteristiche dei singoli filtri che questa factory può creare.

[in, optional] RefString

Se questo argomento viene specificato, questa stringa viene usata come stringa di riferimento per i filtri creati da questa factory. In caso contrario, viene usato il GUID di riferimento fornito nel descrittore.

[in, optional] SecurityDescriptor

Descrittore di sicurezza da usare per la creazione di filtri da parte di questa factory di filtro. Se NULL, non viene fornito alcun descrittore.

[in] CreateItemFlags

Nella tabella seguente sono elencati i flag usati dal writer di minidriver per specificare le caratteristiche dei filtri che la nuova factory di filtri può creare. Impostare questo parametro sull'OR bit per bit dei flag seguenti.

Contrassegno Significato
KSCREATE_ITEM_SECURITY_CHANGED Indica che il descrittore di sicurezza in questo tipo di oggetto è stato modificato e deve essere salvato in modo permanente.
KSCREATE_ITEM_WILDCARD Indica che questo elemento di creazione rappresenta un carattere jolly utilizzato per le richieste di creazione che non corrispondono ad altri elementi di creazione. L'ordinamento della voce con caratteri jolly nell'elenco di elementi di creazione è irrilevante. Solo una singola voce con caratteri jolly è valida in qualsiasi elenco di elementi di creazione.
KSCREATE_ITEM_NOPARAMETERS Indica che questo elemento di creazione non consente il passaggio di parametri e ha esito negativo se presente. In genere, i parametri di creazione vengono passati al gestore di creazione. Questo flag non può essere usato con un flag con caratteri jolly.
KSCREATE_ITEM_FREEONSTOP Indica che l'elemento di creazione deve essere liberato quando il gestore PnP invia IRP_MN_STOP_DEVICE. Si noti che AVStream libera automaticamente tali elementi quando il dispositivo riceve l'arresto PnP (dopo che il client ha ricevuto la notifica di arresto PnP).

[in, optional] SleepCallback

Puntatore a una routine fornita da minidriver che riceve notifiche che il dispositivo associato a questo filtro sta per essere in sospensione. Creare un prototipo della routine come indicato di seguito:

void SleepCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Se questo parametro è NULL, questa factory di filtro non riceve una notifica che indica che il dispositivo sta per essere in sospensione. Vedere Stati di alimentazione del dispositivo.

[in, optional] WakeCallback

Puntatore a una routine fornita da minidriver che riceve notifiche che il dispositivo associato a questo filtro viene riattivato. Creare un prototipo della routine come indicato di seguito:

void WakeCallback (IN PKSFILTERFACTORY FilterFactory,
    IN DEVICE_POWER_STATE State);

Se questo parametro è NULL, questa factory di filtro non riceve una notifica che indica che il dispositivo viene riattivato. Vedere Stati di alimentazione del dispositivo.

[out, optional] FilterFactory

Puntatore a una struttura KSFILTERFACTORY impostata da AVStream in modo che punti all'oggetto factory di filtro appena creato. Se questo parametro facoltativo non è specificato, il chiamante non viene informato dell'oggetto factory di filtro risultante.

Valore restituito

Restituisce STATUS_SUCCESS se è possibile creare la factory del filtro. In caso contrario, restituisce un codice di errore appropriato.

Commenti

Se chiami KsCreateFilterFactory dopo AVStrMiniDevicePostStart, devi chiamare KsFilterFactorySetDeviceClassesState per abilitare la classe del dispositivo. Chiamare anche KsFilterFactorySetDeviceClassesState per disabilitare una factory di filtro.

Se si chiama KsCreateFilterFactory nel contesto di AVStrMiniDevicePostStart o prima, non è necessario eseguire questa operazione.

Prima di chiamare questa funzione, il minidriver deve ottenere il mutex del dispositivo. Per informazioni su come eseguire questa operazione, vedere Device Mutex in AVStream.

Questa funzione deve essere usata dai minidriver che inizializzano se stessi senza una chiamata a KsInitializeDriver o che devono aggiungere e rimuovere dinamicamente nuovi tipi di filtro.

Requisiti

Requisito Valore
Client minimo supportato Disponibile nei sistemi operativi Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib
IRQL PASSIVE_LEVEL

Vedi anche

KSFILTER_DESCRIPTOR

KSNODE_DESCRIPTOR

KSPIN_DESCRIPTOR_EX

KsDeleteFilterFactory