| 
							Anonymous
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 27-10-2003 11:43 »   | 
								
								 | 
							  
							 
							Используя DriverWorks? IMHO, он должен быть KIrp::CurrentStackLocation()->Parameters.Create.SecurityContext->DesiredAccess но там, мусор. Как его еще можно добыть? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							SlavaI
							
								Главный специалист 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 28-10-2003 06:39 »   | 
								
								 | 
							  
							 
							Да вроде только там могут быть параметры, переданные NtCreateFile. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Anonymous
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 28-10-2003 07:55 »   | 
								
								 | 
							  
							 
							А если используется просто CreateFile? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							SlavaI
							
								Главный специалист 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 28-10-2003 09:00 »   | 
								
								 | 
							  
							 
							А CreateFile вызывает NtCreateFile из ntdll.dll, который переводит систему в режим ядра и вызывает NtCreateFile из ядра. Не путай функции режима ядра и юзер мод функции. Я говорил только про режим ядра, так как в юзер моде вобще ничего толкового не делается, и уж тем более не создается IRP, там только код перехода в режим ядра и код проверки параметров, переданных ф-ции, в независимости от того что вызывать- CreateFile/NtCreateFile/ZwCreateFile. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Anonymous
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 28-10-2003 09:32 »   | 
								
								 | 
							  
							 
							Может я тогда чего-то не понимаю. В указанной выше структуре всегда находится значение что-нибудь типа 0012fe55? указывает в никуда само значение тоже мало похоже на GENERIC_READ. Как его еще можно интепретировать?
  BTW: А как обычно делают в драйверах дуплексный режим? Если ожидать прием данных, то ничего больше с драйвером не сделать, если создать нить, то что делать IRP_MJ_READ? Ее как бы надо закончить, но тогда и readfile ничего не получит.  Пока только overlapped  подходит, но это не совсем то. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							SlavaI
							
								Главный специалист 
								
								 
								  Offline
								
								
								
								
							 
						 | 
						
							
								  | 
								
									
									«  Ответ #5 : 28-10-2003 09:55 »    | 
								
								 | 
							  
							 
							Если запрос IRP_MJ_CREATE / IRP_MJ_CREATE_NAMED_PIPE / IRP_MJ_CREATE_MAILSLOT, то в pIrpStack->Parameters.Create.SecurityContext->DesiredAccess находится запрашиваемый уровень доступа. Естественно для других IRP_MJ_... запросов это не верно. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |