Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die folgenden IRP-basierten E/A-Vorgänge verwenden die Puffermethode, die dem Transfertyp entspricht, der in der Definition des I/O-Kontrollcodes (IOCTL) oder des Dateisystemkontrollcodes (FSCTL) angegeben ist:
IRP_MJ_DEVICE_CONTROL
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_INTERNAL_DEVICE_CONTROL
Der Übertragungstyp wird im TransferType-Parameter des CTL_CODE-Makros angegeben. Um den Übertragungstyp für eine bestimmte IOCTL oder FSCTL zu erhalten, verwenden Sie das folgende Makro:
#define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
Dieses Makro gibt einen der folgenden Werte zurück:
#define METHOD_BUFFERED 0
#define METHOD_IN_DIRECT 1
#define METHOD_OUT_DIRECT 2
#define METHOD_NEITHER 3
Weitere Informationen zum CTL_CODE-Makro finden Sie unter Definieren von E/A-Steuercodes.
Beachten Sie, dass IRP_MJ_DEVICE_CONTROL auch eine schnelle E/A-Operation sein kann. Wenn es sich um einen schnellen E/A-Vorgang handelt, verwendet er unabhängig vom Übertragungstyp des IOCTL immer weder gepuffert noch direkte E/A. Weitere Informationen dazu, wann IRP_MJ_DEVICE_CONTROL ein schneller E/A-Vorgang sein kann, finden Sie unter Vorgänge, die IRP-Based oder schnelle E/A-Vorgänge sein können.