OpenGL ICD development?
Where can I find information on how to write an OpenGL ICD for my
(win2k/winxp) display driver?
In particular, I need information on OpenGL and multiple displays. I have a
driver and ICD works fine with only one card in the system As soon as I put
a second (identical) card in the system, I get no OpenGL acceleration on the
secondary display.
The MDSN documentation doesn't seem to include information on how to write
an ICD. Or at least I can't find it.
Thanks,
Noel. Tag: Install vitual NIC Tag: 56246
breakpoint at KeGetCurrentIrql using Windbg&Softice
I met problem when set breakpoint at hal!KeGetCurrentIrql.
Scenario 1: Windows XP + SP2, WinDbg 6.3.0017.0
kd> uf KeGetCurrentIrql
hal!KeGetCurrentIrql:
806f72e8 a18000feff mov eax,[fffe0080]
806f72ed c1e804 shr eax,0x4
806f72f0 0fb68088207080 movzx eax,byte ptr [eax+0x80702088]
806f72f7 c3 ret
kd> bp KeGetCurrentIrql
kd> g
As a result, the target system rebooted.
Scenario 2: Windows 2000 + SP4, Softice
0010:FFFE0080 EF 00 00 00 00 ...
------------------------------------------
0008:80064BEC MOV EAX, [FFFE0080]
0008:80064BF1 SHR EAX, 04
I could set the breakpoint at 80064BEC, but after this instruction, eax is
0x41 instead of 0xEF.
So my questions are:
1. Is there any limitation when setting break points using windbg? If no,
why couldn't I step into KeGetCurrentIrql?
2. Why in Scenario 2 I got 0x41 when reading FFFE0080? From the memory dump,
the data should be 0xEF instead.
Thanks,
Min Tag: Install vitual NIC Tag: 56240
KsProxy interface aggregation.
Hi guys,
I'm tearing my hair out on this one! I have a rendering minidriver, and I
want it to implement frame stepping, which is IVideoFrameStep to user mode,
and AM_KSPROPSETID_FrameStep to the driver.
The code I'm working on already has examples of custom interfaces aggregated
via KsProxy to do property pages. However, in all those cases, the property
set ID is the same as the user mode IID - and it works fine.
However, when it comes to trying to get my new interface working, nothing
happens!
More specifically KsProxy seems to instantiate the user mode COM object in
my helper DLL, but it never queries that same object for IVideoFrameStep,
and trying to single step in GraphEdit does nothing. I suspect the problem
may be due to confusion between IID's and Prop set ID's.
The .INF file for the driver registers the aggregated interface via KsProxy
as follows:
;IVideoFrameStep
HKCR,CLSID\%AM_KSPROPSETID_FrameStep%,,,%PlugIn_IVideoFrameStep%
HKCR,CLSID\%AM_KSPROPSETID_FrameStep%\InprocServer32,,,mediaxks.dll
HKCR,CLSID\%AM_KSPROPSETID_FrameStep%\InprocServer32,ThreadingModel,,Both
; N.B. IID_IVideoFrameStep is NOT the same as AM_KSPROPSETID_FrameStep
; There is no absolute requirement for User mode IID to be the same as
property set GUID.
;AM_KSPROPSETID_FrameStep = "{C830ACBD-AB07-492F-8852-45B6987C2979}"
;IID_IVideoFrameStep = "{E46A9787-2B71-444D-A4B5-1FAB7B708D6A}"
HKLM,%MediaInterfaces%\%AM_KSPROPSETID_FrameStep%,,,%PlugIn_IVideoFrameStep%
HKLM,%MediaInterfaces%\%AM_KSPROPSETID_FrameStep%,IID,%REG_BINARY%,87,97,6A,E4,71,2B,4D,44,A4,B5,1F,AB,7B,70,8D,6A
; Note binary coding is for IID_IVideoFrameStep
And since the property set is meant to be exposed on a pin, I've also got
this little gem, which doesn't appear to be documented anywhere, but seems
to be the way of indicating that the interface is meant to be exposed on a
pin:
; Registry for interfaces
[InterfaceRender.AddReg]
HKR,,CLSID,,%CLSID_PROXY%
HKR,,FriendlyName,,%mediaxm2v.DeviceDesc%
HKR,PinFactory\0\Interfaces\%PROPSETID_CONNECTION%,,,%PROPSETID_CONNECTION%
; TODO - should the IID below be the user mode IID or the KS Propsetid?
HKR,PinFactory\0\Interfaces\%IID_IVideoFrameStep%,,,%IID_IVideoFrameStep%
(The propsetid_connection is there so we can suggest an allocator framing).
In my user mode DLL that implements the plug in, I then have code very
similar to the sample available on MSDN (which, ISTR is IAMCameraControl or
such like). Most of the code is not that relevant, except, perhaps, the
QueryInterface, which (not unsurprisingly) looks like this:
STDMETHODIMP CFrameStepInterfaceHandler::NonDelegatingQueryInterface(REFIID
riid, void ** ppv)
{
HRESULT result;
CheckPointer(ppv,E_POINTER);
PrintGUID("CFrameStepInterfaceHandler::NDQI", &riid);
if (riid == __uuidof(IVideoFrameStep))
{
MYTRACE(("IID_IVideoFrameStep\n"));
result = GetInterface(static_cast<IVideoFrameStep*>(this), ppv);
}
else
{
result = CUnknown::NonDelegatingQueryInterface(riid, ppv);
}
MYTRACE(("CFrameStepInterfaceHandler::NDQI %08X\n", result));
return result;
}
Anyways, to cut a long story short, in my DLL, I see something like this
from the debug output of my DLL, which indicates the COM object is
instantiated, but unfortunately, none of the methods in it are called - and
I don't get any debug from my methods or from my driver upon trying to frame
step.
CFrameStepInterfaceHandler::CreateInstance pOuter 009667DC
CFrameStepInterfaceHandler::CFrameStepInterfaceHandler pOuter 009667DC
CFrameStepInterfaceHandler::CFrameStepInterfaceHandler QI 00000000
CFrameStepInterfaceHandler::CreateInstance hr 00000000 pObj 00EC3E28
CFrameStepInterfaceHandler::NDQI: 00000000-0000-0000-C0-00-00-00-00-00-00-46
CFrameStepInterfaceHandler::NDQI 00000000
CFrameStepInterfaceHandler::NDQI: 00000000-0000-0000-C0-00-00-00-00-00-00-46
CFrameStepInterfaceHandler::NDQI 00000000
CFrameStepInterfaceHandler::NDQI: 56A868AF-0AD4-11ce-B0-3A-00-20-AF-0B-A7-70
CFrameStepInterfaceHandler::NDQI 80004002
Any ideas? I'm at my wits end on this one.
MH. Tag: Install vitual NIC Tag: 56235
Help! I can't play Mpeg2-TS in graphedit
Hi,
I've modified the testcap.sys to be a MPEG2 transport stream
minidriver. Then I follow the steps described in
http://www.codeproject.com/directx/MPEG2_Capture_Device.asp?df=100&forumid=59308&exp=0&select=869492
to build the whole graph in graphedit.
My minidriver can connect to Microsoft Mpeg2 demultiplexer
successfully. It also reply every SRB_READ_DATA request without any
problem. But the problem is the ActiveMovie just displays black
windows. I think I may make some mistakes in configuring the
demultiplexer because the example in the above website is for program
stream instead of transport stream. Could anyone give me some advice?
Or anything I should take care?
With my best regards.
Andreu Tag: Install vitual NIC Tag: 56233
Filter driver and winsock2
Hi there,
Is it possible to use the winsock2 API from a filter driver, or in general
from a device driver?
regards,
Nikos Nikolaou Tag: Install vitual NIC Tag: 56228
Windows XP Spool File Name
Hi,
I've seen this question asked in a few places but not found an answer.
Does anybody know how I can determine the physical spool file name
attached to a specific job on the spool queue?
On Windows 2000 it's built from the JobId but that is not the case on
XP. I know I can get XP to revert to the old naming convention by
setting Keep Printed Documents to True but I don't really want to have
to impose that restriction on customers.
I've checked the API for JOB_INFO_x structures but they don't seem to
have a field containing the spool file name.
Many thanks for any help you can offer,
Bob. Tag: Install vitual NIC Tag: 56225
INF file for ISA driver with multiple devices
I have an old WindowsNT ISA driver with two CAN devices, I have rewritten the
driver with pnp and power management etc.
I want to create a INF file for the driver with the two devices - they have
different IRQ and memory ranges.
Is it possible ? if it is - how do i write the INF file, Can i use LogConfig
to configure the hardware resources on both devices or do i have to use two
INF files.
I am only seems to receive the hardware resources for one device in
START_DEVICE
Thanks in advance! Tag: Install vitual NIC Tag: 56221
USB configuration for simultaneous services
Dear experts,
I am looking for the source code of usbser.sys.
I have 3g cellular supporting simultaneous services (e.g.
Voice call, Video
call, internet connection, Fax etc).
I am looking for a sample of a USB configuration that
contains 3 CDC and an
Inf file, which install 3 modems in the device manager
with the usbser.sys driver, the aim is to use microsoft
drivers.
I asked 'Walter Oney' and the answer was to use IAD which
has OS version limitation (XP only) or to write one.
So, my aim is to look for the usbser.sys sources and to
fit it to support 3 CDC. Tag: Install vitual NIC Tag: 56218
Detecting USB Memory on XP
Hi,
Is there a way to detect when a USB memory connected to the system and XP
install it successfully via Visual Basic.Net and which drive letter it has
been assigen?
--
Regards,
Sarmad Aljazrawi
B.Sc. Computer Science, MSDBA, MCP
www.aljazrawi.net Tag: Install vitual NIC Tag: 56214
IOCTL within Kernel-Mode?
I've got an DLL, which currently runs in user-mode, that I want to turn into
an export-driver (kernel-mode DLL). The DLL uses IOCTL as interface to a
device driver (SYS). Is it possible to use IOCTL within kernel-mode, too?
If yes, which headers do I need and which TARGETLIBS do I need to specify in
DDK's "sources" file?
If no, do you know any mechanism that can partly reuse existing IOCTL code?
Thanks,
Wolfgang Tag: Install vitual NIC Tag: 56212
IoReportTargetDeviceChangeAsynchronous returns STATUS_PENDING
Hi, my driver is using PnP custom notification to signal the app.
Unfortunately, IoReportTargetDeviceChangeAsynchronous is returning
STATUS_PENDING and the app never receives any of the messages. I'm fairly
certain that my registration calls are correct with the same GUID messages.
Any suggestions on what's happening, where to look, and a good way to debug
(e.g., tools, etc. Spy isn't reporting anything (I may be using it
incorrectly))?
Thanks
Phil Garofalo
Chicago, IL Tag: Install vitual NIC Tag: 56211
The handle is invalid message after file print command
Hello Sir,
I have installed a custom developed virtual printer driver of postscript
type. This was developed using VC++ windows DDK OEM kit. In the driver I am
creating rendered Postscript PS file of the text typed on notepad and
storing to hard disk. using WritePrinter method of iOEMPS2.
On Windows XP Without Service Pack 2 and Windows 2000 this driver is working
fine . I have tested the driver using Notepad type some text and click File
Menu - Print.
But after installing Service Pack 2 on windows XP - when I choose File Print
in notepad - I am getting the message "The handle is invalid". Please help.
Thank you
Paresh Tag: Install vitual NIC Tag: 56210
what's the max resolution for Video size the NetMeeting can suppor
I'm new to writing PC cam driver.
When the PC cam's default setting as 1440*900,
then open the NetMeeting will be closed soon,
but 1280*1024 and other resolution are OK.
Does my default setting over the limitation ?
Best Regards
PL Wang Tag: Install vitual NIC Tag: 56209
NdisOpenfile( ) gives blue screen
Thanks Dr. RonM for diagnosing all of us being patient.
Infact you little misunderstood my requirements or
i could n't explain it properly. I had to open file
only & only once (after exchange of specific/special packet).
Finally i got the solution...Packets passing NDIS passthru
driver can have IRQL either PASSIVE_LEVEL or DISPATCH_LEVEL
(as i have come to know).All i have done is call the
NdisOpenFile() function when there is a packet with
IRQL==PASSIVE_LEVEL. Hope this will help someone.
Thanks a lot for suggestion/recommendations/ideas put forward by you people
This helped me a lot
Umer Tag: Install vitual NIC Tag: 56207
ERROR_ACCESS_DENIED
Hi,
Sorry for re - posting the question!. Earlier I had written - I'm getting
ERROR_ACCESS_DENIED when I try to open a handle to the non - standard HID USB
keyboard for which I have developed a minidriver. So the answer I got is -
"Use the standard way the HID minidrivers of Logitech, Kensington etc use.
Add a second interface to the driver (aka a side exit). Logitech etc use that
side exit to split the mouse data into standard movement and clicks for
Windows and extra buttons which are routed through the side exit to the tray
application which implements the special assignments like playing a sound or
starting an application etc."
Sorry..but am not very clear about what u said.. Can
u be a bit more specific? Is there any article on internet where I can get
some more information?
I have two questions :
1> U said add a second interface.. U mean to say that I have to change the
firmware to accomodate one more interface, give it a seperate guid and open a
handle to this particular interface?
In this case I will have to change the firmware.
2> I tried developing a driver br some third party software for teh same
device with my current firmware. But it worked (its only an evaluation
version!!). So I thought there s no need to change the firmware. Is it true
that there is some other way of opening a handle to the device?
Any comments on this issue will be of great help to me...
Expecting your reply..
Thanks Tag: Install vitual NIC Tag: 56203
how to restore curropted XP driver system?
Hello everyone:
Due to some reason, some customers computers XP system could not install new
device driver any more. I know one solution is to reinstall XP system. But
it isn't possible for 200 customers to reinstall their system.
Do you if there are any patches or files replace can solve this problem?
Thank you very much!
With Best Regard!
Haikun.
2004-12-09 Tag: Install vitual NIC Tag: 56201
Lockup debugging
I've got a dual Xeon W2k3 box that locks up intermittently. I'd like to
debug
or crash it when it stops responding. Ctrl + double ScrollLock doesn't work.
It's not convenient to have a debugger attached all the time. I wonder if
the following will work.
- I set /debug /debugport=1394 in boot.ini and boot the box
- Once the box has locked up, I connect a 1394 cable to a laptop with WinDbg
- I use WinDbg to debug or crash the box
What are my chances to have WinDbg connected to the target machine when the
latter is stuck - ie spinning at a high IRQL?
Can anyone suggest hardware-based solutions to crash a PC with memory dump?
Like a cheap PCI card, NIC or whatever, with two wires and a red button
soldered to it? Though I am afraid the problem is in video drivers, so even
if I managed to crash the computer, I won't get the memory dump anyway.
Thanks
Pete
-- Tag: Install vitual NIC Tag: 56200
MiniportQueryInformation
From what I understood MiniPortQueryInformation is the function that exposed
by the miniport-edge (upper layer of the IM) to allow Porotocol driver
(above the IM) to query the NIC .. the function call translates to
NdisRequest() function call.
Now the question is do I use MiniPortQueryInformation function call if I
want to query NIC info from within the IM or should I just call
NdisRequest() function directly?
Thank you for your help. Tag: Install vitual NIC Tag: 56194
IoVolumeDeviceToDosName( ) doesn't work on Win2K3
I wrote a FileSystem Filter driver. I call the IoVolumeDeviceToDosName( ) in
Win2K3 driver, and I get the error that the device is not supported.
I use the exact same parameters in Win2K when I call
RtlVolumeDeviceToDosName( ), and it works like a charm...What am I missing?
Win2K works.
status = RtlVolumeDeviceToDosName( irpSp->DeviceObject,
&DosName );
Win2K3 doesn't work.
status = IoVolumeDeviceToDosName( irpSp->DeviceObject,
&DosName );
Regards,
-SteveC Tag: Install vitual NIC Tag: 56189
what a cat file signs
Hi All
What, actually, is signed by cat files?
These files mentioned in inf file or all files in a driver package submitted
for signing?
Is it a good idea to submit for signing only those files referenced in the
inf file?
TIA
Andrew Tag: Install vitual NIC Tag: 56181
Notify objects on CE.NET
Does CE.NET support notify objects? I want to port my MUX IM driver to this
platform.
Thanks! Tag: Install vitual NIC Tag: 56178
Problem calling GetSaveFileName from a PrintOEMUI dll
I have developed an unidriver-based virtual printer which saves the printed
data to a selected bitmap (raster) format. It consists of both an UI plugin
and a a rendering plugin, in addition to a monitor dll. Calling
GetSaveFileName() from the port monitor works ok with one exception: There
are refresh problems within the "SaveAs" box when the user selects 'Create
new folder'.
When I try to call GetSaveFileName() from the UI plugin instead (in response
to a DocumentEvent), the refresh problem is still there....
Any help will be appreciated.. Tag: Install vitual NIC Tag: 56175
What driver should I develop for usb microphone interface?
I would write a driver for microphone interface embedded in usb PC camera.
I have no idea what kind of driver I should develop, AVstream driver or
others?
Does DDK contains sample code to demonstrate this ?
or any other site contains the sample code?
Best Regards
Jackal Huang Tag: Install vitual NIC Tag: 56169
A DDK sample bug? or not?
Hello,
I noted a very common pattern/technique in the DDK sample code:
In a dispatch routine for IRPs like IRP_MN_START_DEVICE, you initilize
an event on the stack that the completion routine is supposed to set.
After the call to the lower driver you wait on that event:
status = IoCallDriver(deviceExtension->NextLowerDriver, pIrp);
if(!NT_SUCCESS(status))
{
ERROR HANDLING...
}
//
// MS: Wait for lower drivers to be done with the pIrp.
// Important thing to
// note here is when you allocate memory for an event in the stack
// you must do a KernelMode wait instead of UserMode to prevent
// the stack from getting paged out.
//
if(status == STATUS_PENDING)
{
KeWaitForSingleObject(
&event,
Executive,
KernelMode,
FALSE,
NULL
);
status = pIrp->IoStatus.Status;
}
You probably have seen this technique.
Seems OK?
What I don't understand is what prevents the stack from being paged out
by the time the completion code tries to set the event if that happens
before the KeWait...() is reached. The only resolution I see is if it is
guaranteed that the completion thread is the same thread of the dispatch
routine (but then why bother with events at all...).
What am I missing?
Thanks,
Nir Tag: Install vitual NIC Tag: 56168
Does USB isochronous transfer have buffer alignment limitation?
Dears,
I meet one strange problem for USB 1.1 isochronous transfer.
My test driver is based on the usb isochronous sample in XPDDK.
The maximum packet size of isochronous endpoint is 1022.
The driver sets the buffer offset of each ISO packet according to maximum
packet size. After the driver prepares the internal Irp and urb for
transfer, it calls
IoCallDriver to pass request to bus driver. However, bus driver neither
send isochronous IN command on USB bus nor return error status. The
complete routine is never called.
However, if the driver sets the buffer offset to 512 byte alignment for each
ISO packet, bus driver performs the isochronous transfer well. Does USB
isochronous transfer have buffer alignment limitation?
If bus driver doesn't have this limitation, what's the possible reason for
this problem?
I have sufferred this bug for several days. I don't see any sample code
aligns the
buffer offset for usb isochronous transfer. Please give me some suggestions.
Best Regards
Jackal Huang Tag: Install vitual NIC Tag: 56167
About USB BulkIn and BulkOut
Hi all,
May I do BulkIn and BulkOut at the same time in the USB Wireless driver ?
Because I found some weird things in my BulkIn complete routine,
I got the wrong pIrp(not my previous allocated Irp before call IoCallDriver)
in the
BulkIn complete callback routine.
Does someone encounter this? can somebody throw some light on this ? Thanks! Tag: Install vitual NIC Tag: 56156
MAC address
Can anyone mail me how to retrive MAC address in a NDIS intermediate driver.
Tried OIDs(OID_802_3_CURRENT_ADDRESS) in miniportqueryinformation and
miniportsetinformation to retrive the mac address it did not work.
Thanks
Senthil Tag: Install vitual NIC Tag: 56149
IoReportTargetDeviceChangeAsynchronous Availble on Windows 2000?
Hi,
Can you use PnP custom notification on Windows 2000? There's nothing on the
MSDN, online or off, that I could find, that indicates that it's not useable
for W2K. The only problem is that the function
IoReportTargetDeviceChangeAsynchronous isn't defined in the W2K DDK
libraries. It is however, in the Windows XP DDK libraries. If I build my
drivers with the XP libraries, and don't use RtlVerifyVersionInfo with
VER_SET_CONDITION (see
http://www.microsoft.com/whdc/driver/tips/drv-tools.mspx#EBAA) or any other
"XP-only" functions shouldn't the driver work in W2K?
Thanks for reading,
Phil Garofalo
Chicago, IL Tag: Install vitual NIC Tag: 56148
802.11e related question...
I am implementing 802.11e related features in to our WLAN miniport driver. I
am trying to understand how the QoS related information (like TSPEC etc) will
be passed down to the driver so that the same can be passed on to the MAC.
All I could find (from DDK) was 802.1p/q related priority information.
Has anyone worked on 802.11e + NDIS before? Any pointers?
Thanks! Tag: Install vitual NIC Tag: 56144
CHAT: Preparing your device installs for 64-bit Windows and Longhorn
Ask The Experts: Preparing your device installs for 64-bit Windows and
Windows Longhorn
Difx Tools version 1.1 released on October 22nd. Join Microsoft experts to
learn how to use these tools for x64 and Longhorn ready installs. Some of
the topics discussed will include: 64-bit device driver installation,
readying your driver installs for Locked down Plug and Play in Windows
Longhorn, and using Difx tools to create multi-platform device installs.
December 9, 2004
12:00 - 1:00 P.M. Pacific time
Chat time for cities world-wide:
http://www.timeanddate.com/worldclock/fixedtime.html?month=12&day=9&hour=12&min=0&sec=0&p1=234&sort=1
To add this chat to you calendar:
http://msdn.microsoft.com/chats/outlook_reminders/04_Dec9_64b_LH.ics
For more info on MSDN chats, including other upcoming developer chats, chat
archives, and other info see http://www.msdn.microsoft.com/chats Tag: Install vitual NIC Tag: 56138
Turning on a Device causes a Windows 98 mapped drive to fail ?
We have written a Device Driver for a legacy ISA Interface Card with Visual
C++ 5.0 and the Windows 98 DDK (Driver Development Kit), using Chapter 7 of
Walter Oney's book "Programming the Microsoft Windows Driver Model".
The device is an Ionosonde and is remotely controlled over a network by a
drive letter x:\ mapped to UNIX PC. The Control software works OK at first
but after switching on the Ionosonde a few times, via the Windows 98 Device
Driver, the x:\ drive fails. There is no problem if the x:\ drive is mapped
to a different UNIX server or when polling the local c:\ drive on the Control
PC instead.
Any help would be appreciated. Tag: Install vitual NIC Tag: 56132
Strange error when starting a service...
I am having a really strange problem that hopefully has a simple and obvious
solution that I am just not seeing.
I am installing drivers for a device, and I have to copy several drivers
over in the process to System32\Drivers.
In the INF file, I copy all of the driver binaries to the %12%\drivers
directory, and all the binaries get copied to c:\winnt\system32\drivers (I've
verified this post install). In the registry entries for the various
services that I'm installing, they all contain "System32\DRIVERS\" and then
the binary file name as the ImagePath key.
All of the services have the exact same directory (there are no typos or
anything, all are generated by the %12% in the install INF file). All but
one of them work.
One of them gives me an error when you try to start it that it can't find
the file. Which is odd, because it's right there in the System32\Drivers
directory.
Here's the oddity. If I set the ImagePath to point to another directory -
it works fine. If I then set it back to "System32\DRIVERS\filename.sys", it
now works without a problem.
Does anyone know what I am doing to copy this file wrong?
Thanks in advance if anyone can help. Tag: Install vitual NIC Tag: 56128
USB Interrupt channel
I am trying to setup a call back for USB interrupts from my printer.
How can I initialize an interrupt channel and setup a call back function in
my Language Monitor?
\Manfred Tag: Install vitual NIC Tag: 56127
Using SetPort to display custom messages in the spooler
I am trying to display a custom message in the spooler instead of the
default messages.
I am using SetPort with a PortInfo3 structure.
Copying the string with PortInfo3.pszStatus = _wcsdup(TEXT("My Text"));
The text is actually accessible but will not be displayed by the spooler
window.
SetPort( NULL, PortName, 3, (LPBYTE)&PortInfo3);
What am I doing wrong?
\Manfred Tag: Install vitual NIC Tag: 56126
usb enumeration issues.
We have 2 devices with the same VID but different PID's. When we plug in
both they enumerate. If we unplug one and plug it back in it either will not
enumerate or will bring up a new hardware found dialog. It always works when
the other device is not plugged into the computer. Has anyone seen anything
like this? How do you fix it? Tag: Install vitual NIC Tag: 56124
How Do I invoke a network redirector to connect to a remote host?
Hello,
I'am trying to understand how a "net use * user@host" invokes the
network redirector to connect to a remote host. I use a non-predefined
network provider type (WNNC_NET_TYPE), so I could use it for ftp or
something similar.
The network provider library is invoked by the mpr to determinate
whether the target belongs to the network provider or not.
If I return WN_SUCCESS I guess then NPAddConnection() is called. And
what happends then? Is it the responsibility of the network provider to
call a IOCTL or FSCTL of the FSD?
Could I send a FSCTL with IRP_MN_USER_FS_REQUEST as minor function?
Thank you for your efforts!
--
h.wulff
[dont send me an email] Tag: Install vitual NIC Tag: 56122
What DLL supports UpdateDriverForPlugAndPlayDevices
I'm trying to create a VB friendly API declaration for
UpdateDriverForPlugAndPlayDevices. However, I cannot seem to locate the DLL
that supports this function. The only reference in the MSDN indicates the
function is declared in newdev.h. Reviewing that file does not reveal what
DLL the function is called into.
I did a view dependencies on setupapi.dll but did not see this function
declared there. Searching Google isn't helping either since everything is in
C which also does not reveal the supporting DLL.
Does anyone know? Tag: Install vitual NIC Tag: 56119
Aborting Irps for USB Endpoint 0
How do I abort Irps in process for Endpoint 0 of my USB device? I see that I
can send an Urb of type
URB_FUNCTION_ABORT_PIPE, in which I specify the pipe handle. But I where do
I get a handle to Endpoint 0?
The USBD_INTERFACE_INFORMATION structure seems to contain information about
pipes, but not for Endpoint 0.
Thanks in advance for the help,
Dennis Tag: Install vitual NIC Tag: 56113
SL_PENDING_RETURNED and IoMarkPending
Hi (if walter is there:)),
I was going through walter's Book in the section "Why Completion Routines
Call IoMarkIrpPending" it reads -
>>>
But notice that the driver that called IoMarkIrpPending only managed to set
SL_PENDING_RETURNED in its own stack location. The drivers above it actually
returned STATUS_PENDING, but they didn't call IoMarkIrpPending on their own
behalf because they didn't know they'd end up returning STATUS_PENDING as
proxies for the guy at the bottom of the stack. Sorting this out is where the
boilerplate code in the completion routine comes in, as follows. As
IoCompleteRequest walks up the I/O stack, it pauses at each level to set the
IRP's PendingReturned flag to the value of the current stack's
SL_PENDING_RETURNED flag. If there's no completion routine at this level, it
then sets the next higher stack's SL_PENDING_RETURNED if PendingReturned is
set and repeats its loop. It doesn't change SL_PENDING_RETURNED if
PendingReturned is clear. In this way, SL_PENDING_RETURNED gets propagated
from the bottom to the top of the stack, and the IRP's PendingReturned flag
ends up TRUE if any of the drivers ever called IoMarkIrpPending.
>>>
if i understand it correctly if SL_PENDING_RETURNED set means that
STATUS_PENDING was returned by one of the driver, and then it helps IO
manager in deciding that an APC is needed or not during completion.
What if in a 3 driver stack driver no 2 marks IRP pending ? in that case
the the top driver dispatch routines returns STATUS_PENDING and in IO
Completion propogates SL_PENDING_RETURNED it using boiler plate
if (Irp->PendingReturned)
IoMarkIrpPending(Irp);
does that also mean that an APC will not be scheduled for that thread ?
I belive if the the Top level Stack location has Pending Set then the APC
will be skipped and if not then it will scheduled.
if there is no APC scheduled then by which means the buffers will be copied
to the user space ?
Could anybody shed some light ?
Regards
Subodh Tag: Install vitual NIC Tag: 56107
NdisOpenFile( ) gives blue screen
Thanks a lot for quick responses.
Firstly i am tracking some (specific) packets and bound to open
file after exchange of those (specific) packets. In short, for me
it is useless to open file in MiniportInitialize( ) so where else
can i try NdisOpenFile( ) with IRQL=PASSIVE_LEVEL ? For me the
ideal place was MPSend( ) where i was tracking packets but that
place has IRQL=DISPATCH_LEVEL (as I have come to know).
Secondly i am trying "KeGetCurrentIrql()" even ntddk.h (or wdm.h)
is included. But my compiler is giving error "C4013, KeGetCurrentIrql undefined"
Recommedation required
With Thanks
Umer Tag: Install vitual NIC Tag: 56105
(Re: )IM protocol driver performance and optimization
[[Unable to retrieve message
84bdcc66.0412030325.70125378@posting.google.com]]
Thanks for your responses. It seems I have to be more specific as to
what I want, or why I thought an IM driver would be appropriate.
We (mis-)use NDISUIO/NDISPROT just as the interface from the miniport
to the user level which works well. However, it seems to me that
adding any "real" protocol in there would make things messy and hard
to maintain, since I would be mixing two things, a protocol
(manipulating contents) and a 1:1 packet to IRP packer (struggling
with OS issues).
So I thought I needed something to go between the miniport and the
"protocol", i.e. the user level interface, and the thing that seemed
to fit like a glove was an IM protocol driver. In there I thought I
could strip the 14 byte Ethernet header and the proprietary protocol
headers and trailers by just manipulating the MDL start address and
length and get away without any memcopies.
(I know it is not nice to assume that an NdisPacket will always
consist of N NdisBuffers which are just MDLs. I was also hoping that I
could somehow ensure that N=1. We work in a fairly special purpose
market, so the number of different Miniports we have to support are
fairly limited and stable.)
That way I could also modularly switch between different proprietary
protocols without having to duplicate the UIO part every time which is
fixed for any NIC and any protocol.
If IM protocol drivers are inappropriate for what I want, is there
another way to achieve these goals in XP? Can I put a second protocol
driver in the chain instead? Is there a sample for that? Is that
efficient, or do I have to work with IRPs and the I/O manager?
How is IP and TCP implemented in Windows? I hope they do not use IRPs
as the mechanism? I would assume that IP and TCP are separate, since
UDP and ARP work over IP without TCP, but then I only see one "entity"
to "tick" in the network properties dialog. I guess I was hoping for
something like STREAMS in System V, but enough rambling.
What we want to achieve? Get the data from the hardware into a
contiguous user level memory area FAST, removing the headers and
trailers of Ethernet and error detection/correction protocol on the
fly, sometimes rather infrequently the packet content needs to be
modified (on error correction). The normal case needs to be efficient,
the rare case not (obviously). At the same time the whole thing should
be easily maintainable and open to changes in the protocol or even
changes in the implementation of the same protocol, e.g. modular etc.
Thanks again for any help.
PS. Yes, I have tried to share memory between kernel and user, but I
still have to transfer the packet content from the NDIS data
structures to the shared memory and then copy again to remove the
headers and trailers. Tag: Install vitual NIC Tag: 56103
Launching Application from USB composite Device on Plugin.
Hi,
Please suggest, if there is a way to launch an application from USB device
based on event. (example -Plug in). Application resides in USB device memory.
I have flexibility to make the device as HID/Mass storage/CD.
I prefer it to be a HID device, to use with 98-XP.
Thanks,
ArulVraj Tag: Install vitual NIC Tag: 56102
Having MSDN Subcription, but how to get supports from Microsoft?
Hi everyone,
My company has bought a MSDN Subcription from Microsoft, I know that with it
we can get some supports from Microsoft but I dont know whom should I
contact to? What I would like to ask Microsoft is:
My company developed a Remote Tv Tuner that produces MPEG-2 PS and we now
have our TVPlayer that can view the TV well. But we now want to develop a
kind of TV Tuner driver compatible with MCE so that the MCE can recognize
our TV Tuner and play. But we dont know how to begin because all the
documentation from Microsoft is for real TV hardware Tuners plugging at the
PCI but we dont have any real hardware but MPEG-2 PS from the remote Tv
Tuner.
Someone from Microsoft could support me the technical information about
this?
Any information will be very helpful,
Thanks,
Truong Duc Do, Tag: Install vitual NIC Tag: 56100
Automating Driver Installation in Windows 98
Is there any way to automate the device driver installation process in Windows
98 instead of "add new hardware" Tag: Install vitual NIC Tag: 56094
IOCTL_STORAGE_RESET_BUS doesn't clear SCSI Reservations.
Hi,
I am trying to use IOCTL_STORAGE_RESET_BUS.
I have a set up where two Windows Machines are sharing a library over SAN
(using Brocade silkworm 2400 switch). One of the machines is windows 2003
server and other is windows 2000 server.
IOCTL_STORAGE_RESET_BUS actually works on W2K3 machine (HBA is Emulex
LightPulse 9000) and it clears all Previous SCSI Reservations (done using
SCSI command 0x16) on the drives in the library and I could see Event in
Windows Event Viewer saying that SCSI bus has been reset on request. I could
then reserve the same drive from another machine.
Problem is that IOCTL_STORAGE_RESET_BUS on W2K machine returns success but
(this one is Q-Logic QLA2340 HBA) it doesnâ??t clear previous reservations made
on drives. I see event in windows event viewer after that saying that â??The
device, \Device\Scsi\xxxxxxx, did not respond within the timeout period.â??
I enabled options to allow Target Device Reset from QLogic Bios
Configuration Utility-Advanced Adapter Options but that didnâ??t help.
On w2k3 system, I tried it with both Scsiport-Miniport and Storport-miniport
drivers and it worked and clears reservations. But on w2k system it doesnâ??t
clear the SCSI reservation.
Anyone has any Idea why this might be happening?
Any help on this will be really appreciated.
Thanks and Regards.
Hetal. Tag: Install vitual NIC Tag: 56090
Launching A User Process From Printer UI Plugin
I need to launch a process from the OEMUI plugin to process some data from
my virtual printer driver. The problem is it always launches as the user
SYSTEM. I was under the impression from previous posts that the UI always
ran at the user level. I don't want the process running as SYSTEM for
securtiy reasons. How can I get the process to run as the current user
viewing the desktop? I've noticed that the spawned process does not always
show up on the visible desktop when a "Switch User" is performed. I've tried
launching from both the port monitor and the UI plugin but it always comes
up as SYSTEM and not always in the visible desktop. The Adobe PDF virtual
print driver and the Microsoft Office Document Image Writer both launch
programs to process data and they both do it as the correct user so I know
it can be done but I can't find the correct calls to make it work. Any help
is appreciated.
Thank you,
Bob Herzberg Tag: Install vitual NIC Tag: 56089
EngTextOut has different output for Print To File
Hello,
I've found an odd situation and I can't figure out where to look.
I have a monolithic usermode print driver. It typically punts TextOut calls
right back to GDI's EngTextOut without changing any of the arguments. The odd
behavior is this: An application makes 4 calls to TextOut
a.) Regular font weight, right-side up
b.) Bold, right-side up
c.) Regular, sideways
d.) Bold, sideways
The right-side up text looks fine, but the sideways text looks different.
The characters are wider, the bold characters are heavier, and the regular
characters appear slightly stretched (most visible on numerals with loops,
like 5 and 8).
By sideways I mean rotated 90 degrees. It's the same characters in every
instance, same font.
If I print to a file, everything looks correct, however.
--
Matt Kane
mkane@zebra.orange.com minus fruit Tag: Install vitual NIC Tag: 56087
BSOD shuts down the Harddisk
Hi there,
i'm looking for a possibility to prevent Windows from shutting down the
Harddisk at BSODs.
After digging around in the MSDN my nearest findings were at the IRP
functions,
especially IRP_MJ_POWER
I *think* Windows sends a IRP or something else to the Device Driver at it
shut down the Drive.
But this seems to be depending on the Device Driver itself, because only the
Boot-Disk with Standard IDE is shut down,
not the other Disk on my RAID-Controller.
Perhaps the RAID-Controller ignores the Command ?
Any Idea ?
Greeting,
Thomas Tag: Install vitual NIC Tag: 56085
I have write a vitual NIC driver, How can I write a application to install
the driver?