Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete zaregistrovat rutiny zpětného volání před operací a rutiny zpětného volání po operaci, minifiltr ovladač provede jedno volání na FltRegisterFilter ve své rutině DriverEntry. Pro parametr Registration v FltRegisterFilterpředává ovladač minifiltru ukazatel na FLT_REGISTRATION strukturu. OperationRegistration člen této struktury obsahuje ukazatel na pole struktur typu FLT_OPERATION_REGISTRATION, jedna pro každý druh I/O operace, kterou musí ovladač minifiltru zpracovat.
Každá struktura FLT_OPERATION_REGISTRATION v poli, s výjimkou té poslední, obsahuje následující informace.
Hlavní kód funkce pro operaci. Informace o operacích vstupně-výstupních a jejich parametrech specifických pro typ požadavku naleznete v FLT_PARAMETERS.
Pro operace čtení a zápisu (IRP_MJ_READ a IRP_MJ_WRITE) je sada příznaků, které určují, jestli se mají ignorovat vstupně-výstupní operace uložené v mezipaměti nebo stránkovací vstupně-výstupní operace nebo obojí pro vstupně-výstupní operace založené na protokolu IRP.
Vstupní body pro až jednu rutinu zpětného volání před operací a jednu rutinu zpětného volání po operaci
Poslední prvek pole musí být {IRP_MJ_OPERATION_END}.
Následující příklad kódu, převzatý z ukázkového ovladače skenerového minifiltru, ukazuje pole struktur FLT_OPERATION_REGISTRATION. Ovladač minifiltru skeneru registruje rutiny pro zpětné volání před a po operaci pro IRP_MJ_CREATE a rutiny předoperačního zpětného volání pro operace IRP_MJ_CLEANUP a IRP_MJ_WRITE.
const FLT_OPERATION_REGISTRATION Callbacks[] = {
{IRP_MJ_CREATE,
0,
ScannerPreCreate,
ScannerPostCreate},
{IRP_MJ_CLEANUP,
0,
ScannerPreCleanup,
NULL},
{IRP_MJ_WRITE,
0,
ScannerPreWrite,
NULL},
{IRP_MJ_OPERATION_END}
};