Асинхронный режим работы девайса задается флагом FILE_FLAG_OVERLAPPED при вызове из CreateFile. А как в дравере этого девайса определить был ли установлен этот флаг?
Код (Text): NTSTATUS DispatchCreate( IN PDEVICE_OBJECT pDeviceObject, IN PIRP pIrp ) { PIO_STACK_LOCATION pIoStack; pIoStack = IoGetCurrentIrpStackLocation( pIrp ); if ( 0 == (pIoStack->FileObject->Flags & FO_SYNCHRONOUS_IO) ) { // asynch }