help

hello,

i am a newer for driver design,now i want to design a tcp filter,

i do it step by step,first,i intercept all network irp and don’t

do anything else on them.

when i used telnet or http,it work properly,but when i lookup computer

through netneighbor ,the system crash,it showed"NO_MORE_STACK_LOCATION,but i check my source code,i can’t find

the reason .can u tell me?

thanks a lot.

below is my source code.

//nfinit.c

#include <ntddk.h>

#include “tdi.h”

#include “NFilter.h”

NTSTATUS

DriverEntry(

IN PDRIVER_OBJECT NFDriverObject,

IN PUNICODE_STRING RegistryPath

)

{

//define var

PDEVICE_OBJECT NetDevice;

UNICODE_STRING NetDeviceName;

PDRIVER_OBJECT NetDriver;

PDRIVER_DISPATCH EmptyDispatchValue;

PDEVICE_OBJECT TargetDevice;

PDEVICE_EXTENSION NFExtension;

PDEVICE_OBJECT NFDevice;

PFILE_OBJECT FileObject;

NTSTATUS status;

ULONG i;

EmptyDispatchValue=NFDriverObject->MajorFunction[IRP_MJ_CREATE];

NFDriverObject->DriverUnload=NFDriverUnload;

NFDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=NFDispatchDeviceIoControl;

//get target device pointer

RtlInitUnicodeString(

&NetDeviceName,

L"\Device\Tcp");

status=IoGetDeviceObjectPointer(

&NetDeviceName,

FILE_ALL_ACCESS,

&FileObject,

&NetDevice);

if(!NT_SUCCESS(status))

{

return status;

}

//create filter device

status=IoCreateDevice(

NFDriverObject,

sizeof(DEVICE_EXTENSION),

NULL,

FILE_DEVICE_UNKNOWN,

0,

FALSE,

&NFDevice

);

if(!NT_SUCCESS(status))

{

return status;

}

//attach target device with filter device

TargetDevice=IoAttachDeviceToDeviceStack(

NFDevice,

NetDevice);

if(!TargetDevice)

{

IoDeleteDevice(NFDevice);

return STATUS_SUCCESS;

}

//make filter device get target device’s all character

NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;

NFExtension->DeviceObject=NFDevice;

NFExtension->TargetDevice=TargetDevice;

NFDevice->DeviceType=TargetDevice->DeviceType;

NFDevice->Characteristics=TargetDevice->Characteristics;

NFDevice->Flags|=(TargetDevice->Flags&(DO_DIRECT_IO|DO_BUFFERED_IO));

NetDriver=TargetDevice->DriverObject;

for(i=0;i {

if((NetDriver->MajorFunction!=EmptyDispatchValue)&&(NFDriverObject->MajorFunction==EmptyDispatchValue))

{

NFDriverObject->MajorFunction=NFDispatchPassThrough;

}

}

ObDereferenceObject(FileObject);

return STATUS_SUCCESS;

}

NTSTATUS

NFDriverUnload(PDRIVER_OBJECT NFDriver)

{

PDEVICE_OBJECT NFDevice;

PDEVICE_OBJECT NetDevice;

PDEVICE_EXTENSION NFExtension;

NTSTATUS status;

NFDevice=NFDriver->DeviceObject;

NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;

NetDevice=NFExtension->TargetDevice;

IoDetachDevice(NetDevice);

IoDeleteDevice(NFDevice);

return STATUS_SUCCESS;

}

//dispatch.c

#include

#include “tdi.h”

#include “NFilter.h”

NTSTATUS

NFDispatchDeviceIoControl(

IN PDEVICE_OBJECT DeviceObject,

IN PIRP Irp

)

{

PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);

Irp->IoStatus.Status=STATUS_SUCCESS;

IoCompleteRequest(Irp,IO_NO_INCREMENT);

return STATUS_SUCCESS;

}

NTSTATUS

NFDispatchPassThrough(

IN PDEVICE_OBJECT DeviceObject,

IN PIRP Irp

)

{

NTSTATUS status;

PDEVICE_EXTENSION NFExtension=(PDEVICE_EXTENSION)DeviceObject->DeviceExtension;

PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);

PIO_STACK_LOCATION NextIrpStack=IoGetNextIrpStackLocation(Irp);

*NextIrpStack=*IrpStack;

IoSetCompletionRoutine(

Irp,

NFGenericCompletion,

NULL,

TRUE,TRUE,TRUE);

return IoCallDriver(

NFExtension->TargetDevice,

Irp);

}

NTSTATUS

NFGenericCompletion(

IN PDEVICE_OBJECT DeviceObject,

IN PIRP Irp,

IN PVOID Context

)

{

if(Irp->PendingReturned)

{

IoMarkIrpPending(Irp);

}

return STATUS_SUCCESS;

}

_____________________________________________
»¯×±Æ·ÈÈÂô£¬ÊçŮҲ·è¿ñ http://shopping.263.net/category04.htm
¾«Æ·MP3¡¢ËæÉíÌý£¬¼Û¸ñÕ𺳠http://shopping.263.net/fs/81shop/


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</ntddk.h>

Shiva, may I have the code for an co-installer as well, I am working on
one
in Win2k.

thanks.
Prune.
On 05/08/01, “shiva mallu ” wrote:
> i have the code for an co-installer if u want i can send by this week end=
>
>
>
> “shashidhar ramareddy” wrote:
> Hello all,
> I have to write an device co-installer could anyone send an example progr=
> am
> using DIF_ADDPROPERTYPAGE_ADVANCED function code , the requirement is to =
> add
> custom property page.
> regards,
> shashi
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@usa.net
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> ____________________________________________________________________
> Get free email and a permanent address at http://www.netaddress.com/?N=3D=
> 1
>
> —
> You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

The classinstaller sample of the toaster package in the Beta2 XP DDK
shows how to add a property sheet.

-Eliyas

-----Original Message-----
From: xxxxx@yahoo.com [mailto:xxxxx@yahoo.com]
Sent: Monday, May 07, 2001 6:01 PM
To: NT Developers Interest List
Subject: [ntdev] Re: [Help for coinstaller]

Shiva, may I have the code for an co-installer as well, I am working on
one
in Win2k.

thanks.
Prune.
On 05/08/01, “shiva mallu ” wrote:
> i have the code for an co-installer if u want i can send by this week
end=
>
>
>
> “shashidhar ramareddy” wrote:
> Hello all,
> I have to write an device co-installer could anyone send an example
progr=
> am
> using DIF_ADDPROPERTYPAGE_ADVANCED function code , the requirement is
to =
> add
> custom property page.
> regards,
> shashi
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@usa.net
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
>
> ____________________________________________________________________
> Get free email and a permanent address at
http://www.netaddress.com/?N=3D=
> 1
>
> —
> You are currently subscribed to ntdev as: xxxxx@microsoft.com
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

You have hit the classic LanMan redirector problem that
it fix allocates IRP’s with a given stack size. Check out
the following link for the work around:
http://support.microsoft.com/support/kb/articles/Q198/3/86.ASP

Don Burn
Windows 2000 Device Driver and Filesystem consulting

----- Original Message -----
From: “ÕÅÍþ·ç”
To: “NT Developers Interest List”
Sent: Tuesday, May 08, 2001 11:53 AM
Subject: [ntdev] help

> hello,
>
> i am a newer for driver design,now i want to design a tcp filter,
>
> i do it step by step,first,i intercept all network irp and don’t
>
> do anything else on them.
>
> when i used telnet or http,it work properly,but when i lookup computer
>
> through netneighbor ,the system crash,it showed"NO_MORE_STACK_LOCATION,but
i check my source code,i can’t find
>
> the reason .can u tell me?
>
> thanks a lot.
>
> below is my source code.
>
>
>
> file://nfinit.c
>
>
>
> #include <ntddk.h>
>
> #include “tdi.h”
>
> #include “NFilter.h”
>
>
>
> NTSTATUS
>
>
verEntry(
>
> IN PDRIVER_OBJECT NFDriverObject,
>
> IN PUNICODE_STRING RegistryPath
>
> )
>
> {
>
> file://define var
>
> PDEVICE_OBJECT NetDevice;
>
> UNICODE_STRING NetDeviceName;
>
> PDRIVER_OBJECT NetDriver;
>
> PDRIVER_DISPATCH EmptyDispatchValue;
>
> PDEVICE_OBJECT TargetDevice;
>
> PDEVICE_EXTENSION NFExtension;
>
> PDEVICE_OBJECT NFDevice;
>
>
>
> PFILE_OBJECT FileObject;
>
>
>
> NTSTATUS status;
>
> ULONG i;
>
>
>
> EmptyDispatchValue=NFDriverObject->MajorFunction[IRP_MJ_CREATE];
>
>
>
> NFDriverObject->DriverUnload=NFDriverUnload;
>
> NFDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=NFDispatchDeviceIoControl;
>
>
>
> file://get target device pointer
>
> RtlInitUnicodeString(
>
> &NetDeviceName,
>
> L"\Device\Tcp");
>
> status=IoGetDeviceObjectPointer(
>
> &NetDeviceName,
>
> FILE_ALL_ACCES
S,
>
> &FileObject,
>
> &NetDevice);
>
>
>
> if(!NT_SUCCESS(status))
>
>

>
> return status;
>
> }
>
>
>
> file://create filter device
>
>
tus=IoCreateDevice(
>
> NFDriverObject,
>
> sizeof(DEVICE_EXTENSION),
>
> NULL,
>
> FILE_DEVICE_UNKNOWN,
>
> 0,
>
> FALSE,
>
> &NFDevice
>
> );
>
> if(!NT_SUCCESS(status))
>
> {
>
> return status;
>
> }
>
>
>
> file://attach target device with filter device
>
> TargetDevice=IoAttachDeviceToDeviceStack(
>
> NFDevice,
>
> NetDevice);
>
>
>
> if(!TargetDevice)
>
> {
>
> IoDeleteDevice(NFDevice);
>
> return STATUS_SUCCESS;
>
> }
>
>
>
> file://make filter device get target device’s all character
>
> NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;
>
> NFExtension->DeviceObject=NFDevice;
>
> NFExtension->TargetDevice=TargetDevice;
>
>
>
> NFDevice->DeviceType=TargetDevice->DeviceType;
>
> NFDevice->Characteristics=TargetDevice->Characteristics;
>
> NFDevice->Flags|=(TargetDevice->Flags&(DO_DIRECT_IO|DO_BUFFERED_IO));
>
>
>
> NetDriver=TargetDevice->DriverObject;
>
> for(i=0;i {
>
> if((NetDriver->MajorFunction!=EmptyDispatchValue)&&(NFDriverObject->MajorFunction==EmptyDispatchValue))
>
> {
>
> NFDriverObject->MajorFunction=NFDispatchPassThrough;
>
> }
>
> }
>
>
>
> ObDereferenceObject(FileObject);
>
>
>
> return STATUS_SUCCESS;
>
> }
>
> NTSTATUS
>
> NFDriverUnload(PDRIVER_OBJECT NFDriver)
>
> {
>
> PDEVICE_OBJECT NFDevice;
>
> PDEVICE_OBJECT NetDevice;
>
> PDEVICE_EXTENSION NFExtension;
>
> NTSTATUS status;
>
>
>
> NFDevice=NFDriver->DeviceObject;
>
> NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;
>
> NetDevice=NFExtension->TargetDevice;
>
>
>
>
>
> IoDetachDevice(NetDevice);
>
> IoDeleteDevice(NFDevice);
>
>
>
> return STATUS_SUCCESS;
>
>
>
> }
>
>
>
> file:
//dispatch.c
>
> #include
>
> #include “tdi.h”
>
> #include “NFilter.h”
>
>
>
> NTSTATUS
>
>
ispatchDeviceIoControl(
>
> IN PDEVICE_OBJECT DeviceObject,
>
> IN PIRP Irp
>
> )
>
> {
>
> PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);
>
>
>
> Irp->IoStatus.Status=STATUS_SUCCESS;
>
> IoCompleteRequest(Irp,IO_NO_INCREMENT);
>
>
>
> return STATUS_SUCCESS;
>
>
>
> }
>
>
>
> NTSTATUS
>
> NFDispatchPassThrough(
>
> IN PDEVICE_OBJECT DeviceObject,
>
> IN PIRP Irp
>
> )
>
> {
>
> NTSTATUS status;
>
> PDEVICE_EXTENSION NFExtension=(PDEVICE_EXTENSION)DeviceObject->DeviceExtension;
>
>
>
> PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);
>
> PIO_STACK_LOCATION NextIrpStack=IoGetNextIrpStackLocation(Irp);
>
>
>
> *NextIrpStack=*IrpStack;
>
> IoSetCompletionRoutine(
>
> Irp,
>
> NFGenericCompletion,
>
> NULL,
>
> TRUE,TRUE,TRUE);
>
>
>
> return IoCallDriver(
>
> NFExtension->TargetDevice,
>
> Irp);
>
>
>
> }
>
>
>
> NTSTATUS
>
> NFGenericCompletion(
>
> IN PDEVICE_OBJECT DeviceObject,
>
> IN PIRP Irp,
>
> IN PVOID Context
>
> )
>
> {
>
> if(Irp->PendingReturned)
>
> {
>
> IoMarkIrpPending(Irp);
>
> }
>
>
>
> return STATUS_SUCCESS;
>
> }
>
>
>
>
>
> _____________________________________________
> »¯×±Æ·ÈÈÂô£¬ÊçŮҲ·è¿ñ http://shopping.263.net/category04.htm
> ¾«Æ·MP3¡¢ËæÉíÌý£¬¼Û¸ñÕ𺳠http://shopping.263.net/fs/81shop/
>
> —
> You are currently subscribed to ntdev as: xxxxx@acm.org
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</ntddk.h>

thanks,

by the way,can u tell me how i should do?

You have hit the classic LanMan redirector problem that

it fix allocates IRP’s with a given stack size. Check out

the following link for the work around:

http://support.microsoft.com/support/kb/articles/Q198/3/86.ASP

Don Burn

Windows 2000 Device Driver and Filesystem consulting

----- Original Message -----

From: “ÕÅÍþ·ç”

>To: “NT Developers Interest List”

>Sent: Tuesday, May 08, 2001 11:53 AM

>Subject: [ntdev] help

>

>

>> hello,

>>

>> i am a newer for driver design,now i want to design a tcp filter,

>>

>> i do it step by step,first,i intercept all network irp and don’t

>>

>> do anything else on them.

>>

>> when i used telnet or http,it work properly,but when i lookup computer

>>

>> through netneighbor ,the system crash,it showed"NO_MORE_STACK_LOCATION,but

>i check my source code,i can’t find

>>

>> the reason .can u tell me?

>>

>> thanks a lot.

>>

>> below is my source code.

>>

>>

>>

>> file://nfinit.c

>>

>>

>>

>> #include <ntddk.h>

>>

>> #include “tdi.h”

>>

>> #include “NFilter.h”

>>

>>

>>

>> NTSTATUS

>>

>>

>verEntry(

>>

>> IN PDRIVER_OBJECT NFDriverObject,

>>

>> IN PUNICODE_STRING RegistryPath

>>

>> )

>>

>> {

>>

>> file://define var

>>

>> PDEVICE_OBJECT NetDevice;

>>

>> UNICODE_STRING NetDeviceName;

>>

>> PDRIVER_OBJECT NetDriver;

>>

>> PDRIVER_DISPATCH EmptyDispatchValue;

>>

>> PDEVICE_OBJECT TargetDevice;

>>

>> PDEVICE_EXTENSION NFExtension;

>>

>> PDEVICE_OBJECT NFDevice;

>>

>>

>>

>> PFILE_OBJECT FileObject;

>>

>>

>>

>> NTSTATUS status;

>>

>> ULONG i;

>>

>>

>>

>> EmptyDispatchValue=NFDriverObject->MajorFunction[IRP_MJ_CREATE];

>>

>>

>>

>> NFDriverObject->DriverUnload=NFDriverUnload;

>>

>> NFDriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=NFDispatchDeviceIoControl;

>>

>>

>>

>> file://get target device pointer

>>

>> RtlInitUnicodeString(

>>

>> &NetDeviceName,

>>

>> L"\Device\Tcp");

>>

>> status=IoGetDeviceObjectPointer(

>>

>> &NetDeviceName,

>>

>> FILE_ALL_ACCES

>S,

>>

>> &FileObject,

>>

>> &NetDevice);

>>

>>

>>

>> if(!NT_SUCCESS(status))

>>

>>

>

>>

>> return status;

>>

>> }

>>

>>

>>

>> file://create filter device

>>

>>

>tus=IoCreateDevice(

>>

>> NFDriverObject,

>>

>> sizeof(DEVICE_EXTENSION),

>>

>> NULL,

>>

>> FILE_DEVICE_UNKNOWN,

>>

>> 0,

>>

>> FALSE,

>>

>> &NFDevice

>>

>> );

>>

>> if(!NT_SUCCESS(status))

>>

>> {

>>

>> return status;

>>

>> }

>>

>>

>>

>> file://attach target device with filter device

>>

>> TargetDevice=IoAttachDeviceToDeviceStack(

>>

>> NFDevice,

>>

>> NetDevice);

>>

>>

>>

>> if(!TargetDevice)

>>

>> {

>>

>> IoDeleteDevice(NFDevice);

>>

>> return STATUS_SUCCESS;

>>

>> }

>>

>>

>>

>> file://make filter device get target device’s all character

>>

>> NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;

>>

>> NFExtension->DeviceObject=NFDevice;

>>

>> NFExtension->TargetDevice=TargetDevice;

>>

>>

>>

>> NFDevice->DeviceType=TargetDevice->DeviceType;

>>

>> NFDevice->Characteristics=TargetDevice->Characteristics;

>>

>> NFDevice->Flags|=(TargetDevice->Flags&(DO_DIRECT_IO|DO_BUFFERED_IO));

>>

>>

>>

>> NetDriver=TargetDevice->DriverObject;

>>

>> for(i=0;i {

>>

>> if((NetDriver->MajorFunction!=EmptyDispatchValue)&&(NFDriverObject->MajorFunction==EmptyDispatchValue))

>>

>> {

>>

>> NFDriverObject->MajorFunction=NFDispatchPassThrough;

>>

>> }

>>

>> }

>>

>>

>>

>> ObDereferenceObject(FileObject);

>>

>>

>>

>> return STATUS_SUCCESS;

>>

>> }

>>

>> NTSTATUS

>>

>> NFDriverUnload(PDRIVER_OBJECT NFDriver)

>>

>> {

>>

>> PDEVICE_OBJECT NFDevice;

>>

>> PDEVICE_OBJECT NetDevice;

>>

>> PDEVICE_EXTENSION NFExtension;

>>

>> NTSTATUS status;

>>

>>

>>

>> NFDevice=NFDriver->DeviceObject;

>>

>> NFExtension=(PDEVICE_EXTENSION)NFDevice->DeviceExtension;

>>

>> NetDevice=NFExtension->TargetDevice;

>>

>>

>>

>>

>>

>> IoDetachDevice(NetDevice);

>>

>> IoDeleteDevice(NFDevice);

>>

>>

>>

>> return STATUS_SUCCESS;

>>

>>

>>

>> }

>>

>>

>>

>> file:

>//dispatch.c

>>

>> #include

>>

>> #include “tdi.h”

>>

>> #include “NFilter.h”

>>

>>

>>

>> NTSTATUS

>>

>>

>ispatchDeviceIoControl(

>>

>> IN PDEVICE_OBJECT DeviceObject,

>>

>> IN PIRP Irp

>>

>> )

>>

>> {

>>

>> PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);

>>

>>

>>

>> Irp->IoStatus.Status=STATUS_SUCCESS;

>>

>> IoCompleteRequest(Irp,IO_NO_INCREMENT);

>>

>>

>>

>> return STATUS_SUCCESS;

>>

>>

>>

>> }

>>

>>

>>

>> NTSTATUS

>>

>> NFDispatchPassThrough(

>>

>> IN PDEVICE_OBJECT DeviceObject,

>>

>> IN PIRP Irp

>>

>> )

>>

>> {

>>

>> NTSTATUS status;

>>

>> PDEVICE_EXTENSION NFExtension=(PDEVICE_EXTENSION)DeviceObject->DeviceExtension;

>>

>>

>>

>> PIO_STACK_LOCATION IrpStack=IoGetCurrentIrpStackLocation(Irp);

>>

>> PIO_STACK_LOCATION NextIrpStack=IoGetNextIrpStackLocation(Irp);

>>

>>

>>

>> *NextIrpStack=*IrpStack;

>>

>> IoSetCompletionRoutine(

>>

>> Irp,

>>

>> NFGenericCompletion,

>>

>> NULL,

>>

>> TRUE,TRUE,TRUE);

>>

>>

>>

>> return IoCallDriver(

>>

>> NFExtension->TargetDevice,

>>

>> Irp);

>>

>>

>>

>> }

>>

>>

>>

>> NTSTATUS

>>

>> NFGenericCompletion(

>>

>> IN PDEVICE_OBJECT DeviceObject,

>>

>> IN PIRP Irp,

>>

>> IN PVOID Context

>>

>> )

>>

>> {

>>

>> if(Irp->PendingReturned)

>>

>> {

>>

>> IoMarkIrpPending(Irp);

>>

>> }

>>

>>

>>

>> return STATUS_SUCCESS;

>>

>> }

>>

>>

>>

>>

>>

>>

>> »¯×±Æ·ÈÈÂô£¬ÊçŮҲ·è¿ñ http://shopping.263.net/category04.htm

>> ¾«Æ·MP3¡¢ËæÉíÌý£¬¼Û¸ñÕ𺳠http://shopping.263.net/fs/81shop/

>>

>> —

>> You are currently subscribed to ntdev as: xxxxx@acm.org

>> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>

>

>

>—

>You are currently subscribed to ntdev as: sgfenger@263.net

>To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


IP¿¨¡¢ÉÏÍø¿¨ÌøË®¼Û http://shopping.263.net/category08.htm
NO.5ÏãË®µêÓ­ÏÄÈÈÂô http://shopping.263.net/perfume/


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</ntddk.h>

Hi,everyone, I want to implement the communication between a driver(kernel mode,ring 0) and an application(user mode, ring 3).
I need the driver to activate the application and make the application pop up a window. How can I implement this? Can anyone
give me an example?

BTW,I want to know whether can I pop up a windows in the kernel mode? Thank you very much.
b???.???????&?v?'?ׯj?.n?Qyȩf??]?:.?˛???m??֛???zf???%y?ޞ?^?˛??^r*Lzfެ?…???l??ܢ

You can use standard IRP mechanism to communicate with your app. In order to
activate your app (you probably mean to run it) you’d need to write a
service that will run your application as a result of some event in the
driver. If you wish to make background application active then IRP mechanism
will help you.
You just need to create your own IRP send to the driver with WriteFile or
IOCTRL and wait for completion. Depending on the result of that IRP you can
pop up windows or blow up a cherry bomb :slight_smile:
And yo, get a good book on drivers or you will keep asking this trivial
questions all along (just my 2c).
Regards,
Stas.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
Sent: Tuesday, May 15, 2001 10:34 AM
To: NT Developers Interest List
Subject: [ntdev] Help

Hi,everyone, I want to implement the communication between a driver(kernel
mode,ring 0) and an application(user mode, ring 3).
I need the driver to activate the application and make the application pop
up a window. How can I implement this? Can anyone
give me an example?

BTW,I want to know whether can I pop up a windows in the kernel mode?
Thank you very much.
b­®¶¹®vµjjÁz±N‹§²æìr¸›zǧu¦åjy™¨¥¶‰^j÷§µ×¯ã®z*X¬¶?­Ê&


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Check out notification objects may be it will help you.
Regards,
shashi
----- Original Message -----
From: stas
To: NT Developers Interest List
Sent: Tuesday, May 15, 2001 3:48 PM
Subject: [ntdev] RE: Help

You can use standard IRP mechanism to communicate with your app. In order to
activate your app (you probably mean to run it) you’d need to write a
service that will run your application as a result of some event in the
driver. If you wish to make background application active then IRP mechanism
will help you.
You just need to create your own IRP send to the driver with WriteFile or
IOCTRL and wait for completion. Depending on the result of that IRP you can
pop up windows or blow up a cherry bomb :slight_smile:
And yo, get a good book on drivers or you will keep asking this trivial
questions all along (just my 2c).
Regards,
Stas.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
Sent: Tuesday, May 15, 2001 10:34 AM
To: NT Developers Interest List
Subject: [ntdev] Help

Hi,everyone, I want to implement the communication between a driver(kernel
mode,ring 0) and an application(user mode, ring 3).
I need the driver to activate the application and make the application pop
up a window. How can I implement this? Can anyone
give me an example?

BTW,I want to know whether can I pop up a windows in the kernel mode? Thank
you very much.
b­®¶¹®vµjjÁz±N‹§²æìr¸›zǧu¦åjy™¨¥¶‰^j÷§µ×¯ã®z*X¬¶?­Ê&

You are currently subscribed to ntdev as: xxxxx@wipro.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi,stas,you are right. Thank you very much. I want to run the application. You said that I need to write a service that run my
application. This service need an event in my driver to notify it. How to do this? This service run in kernel mode or user mode?
Would you please give me some more detail information? I really appreciate your help.

----- Original Message -----
From: stas
To: NT Developers Interest List
Sent: Tuesday, May 15, 2001 6:18 PM
Subject: [ntdev] RE: Help

You can use standard IRP mechanism to communicate with your app. In order to activate your app (you probably mean to run it) you’d need to write a service that will run your application as a result of some event in the driver. If you wish to make background application active then IRP mechanism will help you.
You just need to create your own IRP send to the driver with WriteFile or IOCTRL and wait for completion. Depending on the result of that IRP you can pop up windows or blow up a cherry bomb :slight_smile:
And yo, get a good book on drivers or you will keep asking this trivial questions all along (just my 2c).
Regards,
Stas.
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
Sent: Tuesday, May 15, 2001 10:34 AM
To: NT Developers Interest List
Subject: [ntdev] Help

Hi,everyone, I want to implement the communication between a driver(kernel mode,ring 0) and an application(user mode, ring 3).
I need the driver to activate the application and make the application pop up a window. How can I implement this? Can anyone
give me an example?

BTW,I want to know whether can I pop up a windows in the kernel mode? Thank you very much.
b???v?jj?z?N???r??zǧu??jy???^j???ׯ??z*X???&

You are currently subscribed to ntdev as: xxxxx@bigfoot.com
To unsubscribe send a blank email to xxxxx@lists.osr.com
(???r??z{e?˛???m?m?{]z???&j)@u?Ӣ?칻?&ޱ??i?Z?G?j)m?W???u?칻-E?"?Ǧm??(Z?X???,??&

Can you give me some more detailed information? Thank you very much.

----- Original Message -----
From: shashidhar ramareddy
To: NT Developers Interest List
Sent: Tuesday, May 15, 2001 6:14 PM
Subject: [ntdev] RE: Help

> Check out notification objects may be it will help you.
> Regards,
> shashi
> ----- Original Message -----
> From: stas
> To: NT Developers Interest List
> Sent: Tuesday, May 15, 2001 3:48 PM
> Subject: [ntdev] RE: Help
>
>
> You can use standard IRP mechanism to communicate with your app. In order to
> activate your app (you probably mean to run it) you’d need to write a
> service that will run your application as a result of some event in the
> driver. If you wish to make background application active then IRP mechanism
> will help you.
> You just need to create your own IRP send to the driver with WriteFile or
> IOCTRL and wait for completion. Depending on the result of that IRP you can
> pop up windows or blow up a cherry bomb :slight_smile:
> And yo, get a good book on drivers or you will keep asking this trivial
> questions all along (just my 2c).
> Regards,
> Stas.
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
> Sent: Tuesday, May 15, 2001 10:34 AM
> To: NT Developers Interest List
> Subject: [ntdev] Help
>
>
> Hi,everyone, I want to implement the communication between a driver(kernel
> mode,ring 0) and an application(user mode, ring 3).
> I need the driver to activate the application and make the application pop
> up a window. How can I implement this? Can anyone
> give me an example?
>
> BTW,I want to know whether can I pop up a windows in the kernel mode? Thank
> you very much.
> b???v?jj?z?N???r??zǧu??jy???^j???ׯ??z*X???&
> —
> You are currently subscribed to ntdev as: xxxxx@wipro.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@bigfoot.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
(???r??z{e?˛???m?m?{]z???&j)@u?Ӣ?칻?&ޱ??i?Z?G?j)m?W???u?칻-E?"?Ǧm??(Z?X???,??&

Hi,stas,you are right. Thank you very much. I want to run the application. You said that I need to write a service that run my
application. This service need an event in my driver to notify it. How to do this? This service run in kernel mode or user mode?
Would you please give me some more detail information? I really appreciate your help.

???y˫???+.n?+???u?ڲ˛??^r*D???kN???r??zǧu??jy???^j???ׯ??? 0?j?b??(??(

  1. Service will run in the user mode.
  2. You can create named event to communicate with the driver but I would use
    the standard method with IRPs.
  3. Get yourself “Writing Windows WDM Device Drivers” book by Chris Cant or
    something similar the details are all there in the IRP handling chapters.

Furthermore, take a look at DDK samles they have plenty of custom IRPs.
Hope this helps,
Stas
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
Sent: Tuesday, May 15, 2001 12:08 PM
To: NT Developers Interest List
Subject: [ntdev] RE: Help

Hi,stas,you are right. Thank you very much. I want to run the application.
You said that I need to write a service that run my
application. This service need an event in my driver to notify it. How to
do this? This service run in kernel mode or user mode?
Would you please give me some more detail information? I really appreciate
your help.

b‹š­ç.®·§¶\¬¹??Þv?µ×¯jÄ­jÊhÁêçz?±Ê&N‹§²æìr¸›zǧu¦åjy™¨¥¶‰^j÷§µ×¯ã®z
*X¬¶?­Ê&


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I have seen DDK documentation in 2k for network drivers but not familiar
with other drivers having similar feature ,notification objects are to be
registered by driver during installation with suitable call back routines it
is well documented in 2k ddk please refer to it for more details.
Regards,
shashi
----- Original Message -----
From: “Michael Zhu”
To: “NT Developers Interest List”
Sent: Tuesday, May 15, 2001 3:54 PM
Subject: [ntdev] RE: Help

> Can you give me some more detailed information? Thank you very much.
>
> ----- Original Message -----
> From: shashidhar ramareddy
> To: NT Developers Interest List
> Sent: Tuesday, May 15, 2001 6:14 PM
> Subject: [ntdev] RE: Help
>
>
> > Check out notification objects may be it will help you.
> > Regards,
> > shashi
> > ----- Original Message -----
> > From: stas
> > To: NT Developers Interest List
> > Sent: Tuesday, May 15, 2001 3:48 PM
> > Subject: [ntdev] RE: Help
> >
> >
> > You can use standard IRP mechanism to communicate with your app. In
order to
> > activate your app (you probably mean to run it) you’d need to write a
> > service that will run your application as a result of some event in the
> > driver. If you wish to make background application active then IRP
mechanism
> > will help you.
> > You just need to create your own IRP send to the driver with WriteFile
or
> > IOCTRL and wait for completion. Depending on the result of that IRP you
can
> > pop up windows or blow up a cherry bomb :slight_smile:
> > And yo, get a good book on drivers or you will keep asking this trivial
> > questions all along (just my 2c).
> > Regards,
> > Stas.
> > -----Original Message-----
> > From: xxxxx@lists.osr.com
> > [mailto:xxxxx@lists.osr.com]On Behalf Of Michael Zhu
> > Sent: Tuesday, May 15, 2001 10:34 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] Help
> >
> >
> > Hi,everyone, I want to implement the communication between a
driver(kernel
> > mode,ring 0) and an application(user mode, ring 3).
> > I need the driver to activate the application and make the application
pop
> > up a window. How can I implement this? Can anyone
> > give me an example?
> >
> > BTW,I want to know whether can I pop up a windows in the kernel mode?
Thank
> > you very much.
> > b­®¶¹®vµjjÁz±N‹§²æìr¸›zǧu¦åjy™¨¥¶‰^j÷§µ×¯ã®z*X¬¶?­Ê&
> > —
> > You are currently subscribed to ntdev as: xxxxx@wipro.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@bigfoot.com
> > To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> >
> b­®¶¹®vµjjv­­Ë®?.žË›±Êâm?Ö›•©äzf¢–?y«Þž×^¿ŽyÔÙb²Û(²·(


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com