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 |