what is being passed into KSDEVICE_DISPATCH dispatch functions
Hi,
for KS miniDriver
KSDEVICE_DISPATCH maintains a list of functions pointers,
We put the address of our functions, (for example AddDevice, PnPStart) into
these pointers, In our definitions for these functions (AddDevice, PnPStart),
there are IN parameters, what are these parameter? Where do i get this
informations for these parameter?
for example, for AddDevice functions,
it is
const
KSDEVICE_DISPATCH
CaptureDeviceDispatch = {
MyCaptureDevice::MyDevice_PnPAdd
...
}
MyCaptureDevice::MyDevice_PnPAdd(IN KSDEVICE device){
}
I what exactly is "device" being passed in?
where can i find a better reference than the API reference on these?
--
--------------------------------------------
William Tag: !srb Tag: 99987
Capturing with Amcap and AVStream driver
My AVStream driver is having problems with capturing when using AMCap.
I can see the preview with no problems, but when I start capturing,
the resulting file only has one frame in it. I've gone back and tested
the avshws sample and it is doing the same thing as well. Is there
something missing to support capturing video?
Thanks,
Matt Tag: !srb Tag: 99974
Capture with an AVStream driver
I'm trying to get my driver to capture a video in AMCap. The preview is
working without problems, but when I capture, only one frame is in the file.
I went back to the avshws sample and it has the same behavior. What needs to
be done so that capture can be supported?
Thanks,
Matt Tag: !srb Tag: 99973
WDK Linker error U1073
Hallo,
ich habe einen Treiber im DDK entwickelt und bin gerade dabei diesen ins
WDK zu portieren. Dabei erhalte ich bei Linken die Meldung:
NMAKE: fatal error U1073: don't know how to make
'c:\winddk\6000\wxp\i86\msvcrt_winnt4.obj'
Ich verstehe das nicht ganz, denn in diesem Verzeichnis befindet sich
die Datei "msvcrt_winnt4.obj" nicht, sondern die Datei
"msvcrt_winxp.obj" . Wäre schön, wenn mir jemand weiterhelfen kann.
Im Source-File USE_MSVCRT=1 gesetzt.
Danke
A.Fuss Tag: !srb Tag: 99936
routing table question
Hi,
Is it possible to register some kind of callback to get notification about
changes in routing table.
Either in driver or in user mode.
Thanks,
Anatoly. Tag: !srb Tag: 99927
I need valid drive letters...
Hi.
I need driver letter and the order..
Look at this. (this is my HDDs)
Disk1
C: - '\Device\HardDiskVolume1'
E: - '\Device\HardDiskVolume2'
F: - '\Device\HardDiskVolume3'
G: - '\Device\HardDiskVolume4'
Disk3
Y: - '\Device\HardDiskVolume9'
H: - '\Device\HardDiskVolume8'
I: - '\Device\HardDiskVolume7'
J: - '\Device\HardDiskVolume6'
K: - '\Device\HardDiskVolume5'
D: - '\Device\HardDiskVolume10'
I can get HardDiskVolumes by disk letter (like C:\ D:\)
Now I read NTFS Partition table. But I don't know how I get partition
table's drive letter.
In case I read Partition table, Disk1's order is valid. So I can know
C, E, F, G
But Disk3's order is not valid. (just desc..)
So I cann't read disk letter by volume order.
How can I get disk letter when I read partition table(NTFS)? Tag: !srb Tag: 99901
Question about WdfRequestCompleteWithInformation
Hello,
I have a wait queue in my IODeviceControl to wait for interrupt happen. When
I need to wait, I will forward my IOCTL request to the queue, when interrupt
happen, in DPC, I retrieve the request, and call:
WdfRequestCompleteWithInformation(request,
STATUS_SUCCESS,
outputBufferLenght);
to complete request. My application is C++ with Java native interface. I
found that if I call above function with outputBufferLenght, Exception will
happen in Java object which is If I call above function with 0 lenght,
everything is OK except I didn't get my return data from IOCTL.
My I/O type is buffered, my buffer is not big, about 48 bytes.
My question is what above function did to my output buffer in two cases? How
come it cause Java exception?
Thanks,
May Tag: !srb Tag: 99899
Legacy driver WHQL signing
If this is posted in this wrong place, I apologize in advance.
I work for a very small company and we have some interest in getting a
2004 era web cam driver signed by WHQL. We use it through direct show.
The driver was originally signed but we have modified the .inf file to
change the Manufacturer, VendorID, and ProductID.
Is it going to be possible to get it signed by WHQL? We don't have the
source code for the driver and we have a hard time getting any
attention from the company that wrote the driver. The driver also does
not work well under Vista. Our target population changes there
hardware very very slowly so we anticipate at least five more years of
working under XP.
Does anyone have any advice?
Can anyone recommend a consultant?
Thanks in advance,
Lars Tag: !srb Tag: 99897
installing avshws sample driver on Vista 64
Hi,
I have build the sample driver using checked 64 environment.
I have "Windows cannot load the device driver for this hardware. The
driver may be corrupted or missing. (Code 39)" after instaling it.
Has anybody know what can be wrong here?
Regards,
scout Tag: !srb Tag: 99896
PCI-e interrupt latency & number of interrputs limitations
Hello All,
May be no one here knows a correct answer for such a close hardware
related issues, but this piece of knowledge may be very useful for
other driver developers.
In one of my previous posts I wrote about a PCI devices, located
behind PCI-to-PCI-e Bridge, the topic is located here
http://groups.google.com/group/microsoft.public.development.device.drivers/browse_thread/thread/3c71820bb5e5b463/9fb6213ca87b9dc7#9fb6213ca87b9dc7.
Drilling down to the root of the problem I discovered very strange
behavior. It seems PCI-to-PCI-e Bridge limits number of interrupts it
actually translates to the PCI-e hierarchy Root Complex. In my case I
got about 64 interrupts per second in total from all the secondary PCI
bus devices. I have checked PCI-to-PCI-e Bridges from two
manufacturers - Texas and PLX Technology - both shown very similar
picture with very minor deviations in details. No wonder I can not
work in a regular way with devices on the secondary PCI bus!
Does any one know about such limitations and the reason they exist?
With best regards,
Vladimir S. Mirgorodsky Tag: !srb Tag: 99881
IRP_MN_REMOVE not getting called
Hi,
I have a typical problem of IRP_MN_REMOVE not getting called. The
scenario
is like this.
We have a virtual USB bus which creates PDOs for each simulated
device. We
could simulate a mass storage device. We can 'unplug' it (from an
application) by means of our bus driver sending
IoInvalidateDeviceRelations
and then reporting the device as missing. We subsequently get
REMOVE_DEVICE
for the PDO and it successfully unloads.
However when we are copying some data to the device, if we 'unplug' it
while
still copy is in progress then we don't get the IRP_MN_REMOVE_DEVICE
from
the PNP manager.
We see that there are no pending requests (IRPs) with us and we have
successfully completed IRP_MN_SURPRISE_REMOVAL, still there is no
REMOVE.
After dumping the devobj I get the following trace :
0: kd> !devobj 852fe9f0
Device object (852fe9f0) is for:
00000089
\Driver\VUSB DriverObject 854cc858
Current Irp 00000000 RefCount 0 Type 0000002a Flags 00003040
Dacl e2430954 DevExt 852feaa8 DevObjExt 852fec08 DevNode 85538ee8
ExtensionFlags (0x00000008) DOE_REMOVE_PROCESSED
AttachedDevice (Upper) 8527b030 \Driver\USBSTOR
Device queue is not busy.
This tells that there are no open references as well. I am also
doubtful about "DOE_REMOVE_PROCESSED". Does this mean that system
thinks that it has sent me IRP_MN_REMOVE_DEVICE ??
Any hints please?
Thanks,
Regards,
Abhijit Tag: !srb Tag: 99865
ZwCreateFile BSOD
I have a weird problem.
ZwCreateFile is causing my computer to crash. I have issolated the
problem in ZwCreateFile using SoftIce. However, I don't understand
why.
I'm in the process of converting an NT driver to WDM. This part of the
code is the same between the NT version and the WDM version. The NT
version works find. Thje WDM version crashes with the following
error:
Error=A (IRQL_NOT_LESS_OR_EQUAL) P1=E1307008 P2=2 P3=1 P4=F451C12
This tells me that I have a pointer problem but I can't figure it out.
The pointer(filename) is the same between the NT version and the WDM
version.
Thanks Tag: !srb Tag: 99862
Graqphics driver DDraw/DXVA 1.0 related query
I am developing a driver to support DXVA 1.0 and have some questions related
to capabilities and Pixelformat support. Is this the right forum for such
questions?
Thanks Tag: !srb Tag: 99854
OID_802_3_CURRENTADDRESS Vs OID_802_3_PERMANENTADDRESS
Hi All,
When NDIS calls OID_802_3_PERMANENTADDRESS ? And if it gets a valid
MAC address what makes it to call a OID_802_3_CURRENTADDRESS ??
Does it mean a NIC driver can change its MAC address on the FLY...
If so how can NDIS be informed about the same....
One more query, if i change the Routing table entries dynamically
will this reflect in NDIS calling the Miniport adapter with
OID_802_3_Currentaddress???
Can a change in the Routing table trigger a call to OIDs related to
MAC address??
Thanks in advance
bisban Tag: !srb Tag: 99852
register interrupts
Hi all,
Thank you very much in advance.
my PCI device have 7 subsystems. each one have read write and IOCTRL
functionality. 3 of them use interrupts.
therefore I have to write 7 separate drivers for each subsystems.
I do not want to install this drivers. they may be work simultaneously.
I have problem to register interrupts. How should get information to
register interrupts(interrupt vector and level).
(I have to use WDM model ) Tag: !srb Tag: 99847
Miniport that should not be unloaded at stand by and hibernation
I have a virtual miniport adapter (NDIS 6.0) that I need to remain loaded
during stand by and hibernation (I am communicating with a service which I
don't control that demands this). I have set
NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND in the registration attributes
in MiniportInitializeEx.
Still when the PC is going into stand by MiniportHalt is called with
haltAction = NdisHaltDevicePoweredDown.
Anyone who has an idea of preventing this?
Best regards,
Fredrik Jansson Tag: !srb Tag: 99842
Preinstalling Driver with DIFxApp
I want to install a signed USB driver with WIX 2 and DIFxApp.
This works as long as the USB device is connected to the PC during
installation. If no device is connected DIFxApp does not report an error and
adds an entry to Add/Remove Programs. But when I connect the device Windows
can't find the driver and asks for the *inf file.
The log reports the following:
DIFXAPP: INFO: No matching devices found in INF "foo.inf" on the Machine.
DIFXAPP: INFO: No drivers installed. No devices found that match driver(s)
contained in 'foo.inf'.
DIFXAPP: SUCCESS:Installation completed with code 0xE000020B.
So what can I do to preinstall a driver with DIFxApp?
Thanks,
Markus Tag: !srb Tag: 99841
KeStackAttachProcess
Hello.
I have written a driver routine that changes its thread context to make a
quick read of RAM from another process.
As the topic here suggests, it uses KeStackAttachProcess(), performs the
quick read, and leaves with KeUnstackDetachProcess().
It is generally stableâ??I am not trying to read kernel RAM or anything
dangerous so I donâ??t get any blue screens, but if the target process closes
while my thread is over there my application deadlocks so hard it can not be
closed by any means but a reboot.
Is there any sure way to prevent this?
I tried using CLI and STI but then I get blue screens whining about
privilege levels. I use KeLowerIrql( DISPATCH_LEVEL ) but I get the same
error anyway (I thought DISPATCH_LEVEL could always use CLI?).
I think I could reduce the chances of this deadlock (currently at 94%â??if the
target closes, my application WILL deadlock) using
PsGetProcessExitProcessCalled() and then aborting if TRUE, but then I think
this is only reduces the chances, not eliminates them. What if the process
is closed after I call that function but before I go into it with
KeStackAttachProcess()?
Is there any way to get a brief lock that absolutely ensures the process
cannot close while I am there?
Thank you.
P. S.: I call ObReferenceObjectByHandle() before going into the target
process. This is supposed to raise the reference count on the process so it
canâ??t fully close, which should have been preventing my problem.
Am I being mislead? Tag: !srb Tag: 99820
Filter driver on 64 bit OSes
Hi there,
I just have finished up my filter driver writting on 32bit WinXP and Vista.
The next thing I am currently doing is porting this filter driver to 64 bit
OSes. I have this filter driver built with "Win XP 64 bit build Envirnoment"
and it ended up these drivers neither work on XP nor Vista.
From the registry, I can tell that the filter driver service has been loaded
up but I can't see any my debug message print out from my driver.
I have been searching on net and forums but nothing useful except this thing
called "Kernel-Mode Code Signing". I start to suspect that my filter driver
does not work mostly because of this so-called "code-signing policy". Does
anyone can tell me am I on the right track?
Many thanks in advance.
Best Regards,
aze2cool Tag: !srb Tag: 99816
Help supporting WIA for a video driver
I'm trying to get WIA working for a video camera using the AVStream
class (based off of avshws). I have modified my inf according to the
documentation (http://msdn2.microsoft.com/en-us/library/
ms792274.aspx), and the computer see the WIA device, but when I try to
use any of the tools they never get beyond seeing the device.
Using WiaTest, I can select my device in the new device dialog but
when I click ok an error dialog appears. "CreateDevice failed trying
to create a WIA device (The device is offline)". I haven't done any
code to support WIA - are there functions that I need to support? How
do they get called from an AVStream driver?
Thanks,
Matt Tag: !srb Tag: 99785
How to identify whether a function pointer is valid?
My USB driver sends Irp to query USB_BUS_INTERFACE_USBDI_V1
from bus driver. It returns STATUS_SUCCESS and fills the structure.
I use USB_BUS_INTERFACE_USBDI_V1.IsDeviceHighSpeed() to query
the device running speed mode.
However, the IsDeviceHighSpeed() function pointer is invalid and not NULL.
The system crashes immediately after the driver call the function pointer.
The USB EHCI driver is 3rd party driver. I'm not surprised.
I want to know how the kernel driver to identify whether the function
pointer
is valid before it calls the function pointer.
Or how the kernel driver handle this kind of case.
Best Regards
Jack Huang Tag: !srb Tag: 99779
Wait on File Access Lock
I can find no discussion in the Internet regarding whether this is possible.
I consider the spinlock on exception as a very ugly solution.
Thanks Tag: !srb Tag: 99776
Special IM driver??
Hi All,
I am trying to create a component (Network Driver etc ) which
will help in agnostically route packets between two or more
Interfaces
at the Layer 2 level i.e. at the Mac Address level switiching. So
that
the IP payload in those packets remain the same but the Interface it
travels to go out of the Mobile device is controlled by my component.
IMPORTANT : Both the interfaces will be Ethernet based.
What will be the basic component to build my solution around??
My guess : IM driver
Doubts : How does Mbridge(MSFT) provided helps in this scenario...
How it is different from Layer 2 Switch because i dont think Mbridge
is a Layer 2 switch. Please explain in this regard because I MAY BE
WRONG!!!
Any more pointers will be grateful.
regards
bisban Tag: !srb Tag: 99774
Is there any tool publicly available to generate IPv6 traffic on Windows Vista?
Is there any tool publicly available to generate IPv6 traffic on Windows
Vista?
I am looking for a tool that can be used to generate IPv6 packets with
various Ipv6 extension option headers.
Pls let me know if someone is aware of such a utility.
Thanks,
-Praveen Tag: !srb Tag: 99771
Different unidrv.dll versions - which consequences do they have?
We are using printerdrivers of HP, Kyocera and Lexmark which are based on the
same set of unidriver-dlls. Unfortunately all three vendors use different
versions of these dlls. We need to know the effects of the installation order
on our printerdrivers.
Here are the affected sets of dlls:
Filename Fileversion Filesize Filedate
unidrv.dll 0.3.1296.0 263680 03-25-2003
unidrv.hlp 18022 02-21-2003
unidrvui.dll 0.3.1296.0 203776 03-25-2003
unires.dll 0.3.1296.0 619520 03-25-2003
unidrv.dll 0.3.1296.4 264704 10-03-2006
unidrv.hlp 18022 10-03-2006
unidrvui.dll 0.3.1296.1 198656 10-03-2006
unires.dll 0.3.1296.1 619520 10-03-2006
unidrv.dll 0.3.3790.1830 269312 03-29-2007
unidrv.hlp 18022 03-29-2007
unidrvui.dll 0.3.3790.1830 207872 03-29-2007
unires.dll 0.3.3790.1830 620032 03-29-2007
1. Which changes have been applied between these dlls-versions ?
2. Do we need to follow a special order for the installation?
3. Does the unidrv.dll 0.3.3790.1830 still contain every api-function which
is contained in unidrv.dll 0.3.1296.0?
4. Will any driver which was based on the first set of unidriver-dlls still
work with the more recent set of dlls?
Thank you very much for your support. Tag: !srb Tag: 99770
USB RNDIS
Hi Folks,
i hope you could help me.
Problem Description:
I have a device that i want to connect with my HomePC using an USB RNDIS
Connection. Setting up the inf File is not that Problem, the Inf File works
and Windows sets up an Network Device that i can use for this Connection.
After configuring the netzworkdevice (IP-Adress, etc.) everything works fine.
But:
Can i configure the Networkdevice automatically after Installation? That
means that after the correct driver is installed, the networkdevice should
have an IP-Adress.
Can i configure the IP of the connected Device remotely? (For testing
purpose i have set the Ip-Adress of the device manually..)
Thanks for advice
Stefan Tag: !srb Tag: 99767
[layer 2 Switch] For Windows Mobile based OS
Hi All,
I am trying to create a component (Network Driver etc ) which
will help in agnostically route packets between two or more Interfaces
at the Layer 2 level i.e. at the Mac Address level switiching. So that
the IP payload in those packets remain the same but the Interface it
travels to go out of the Mobile device is controlled by my component.
IMPORTANT : Both the interfaces will be Ethernet based.
What will be the basic component to build my solution around??
My guess : IM driver
Doubts : How does Mbridge(MSFT) provided helps in this scenario...
How it is different from Layer 2 Switch because i dont think Mbridge
is a Layer 2 switch. Please explain in this regard because I MAY BE
WRONG!!!
Any more pointers will be grateful.
regards
bisban Tag: !srb Tag: 99765
SAA7134 & Texas XIO PCI-e-2-PCI bridge
Hello All,
I have a board with PCI-e-2-PCI Bridge XIO2000 from Texas and four
SAA7134 Philips codecs behind it. Windows XP SP2 sees all four devices
as being connected to some PCI bus. I have developed a driver for
SAA7134 Philips codec and loaded it for all four devices behind this
PCI-e bridge. I tested the driver with Philips devices on conventional
PCI bus - it worked in the way I expected it. Everything changed with
this new board. I have tons of mysterious errors. Trying to access one
device memory mapped registers I affect register settings of another
device on the same bus. I miss critical interrupts with almost
enormous lag. Almost everything broke. My driver is conventional WDM.
It uses memory mapped registers and interrupts line. SAA7134 performs
bus master scatter-gather DMA video data transfer.
So, here is the question - are there any special things about
developing drivers for devices, connected to PCI-e bus?
With best regards,
Vladimir S. Mirgorodsky Tag: !srb Tag: 99761
Accessing disabled SCSI devices via Storport
I am developing the SCSI device test application. It is intended mainly for
SCSI device firmware developers and testers, and allows user to execute
manually any SCSI command for the selected SCSI device. During the
development and testing of the firmware the device might not be able to
answer properly to SCSI commands. In this case it is necessary to disable the
device object in the Device Manger window. Disabling the device object
prevents the class driver from sending the SCSI commands for normal
functioning. The special pseudo class driver was developed for the
transparent device access. This driver sends IRP_MJ_SCSI IRPs with the SRBs
directly to storage adapter objects (Scsi0:, Scsi1:, etc). This worked fine
with SCSI Port but does not work with Storport. As I have learned from this
newsgroup the Storport does not allow sending SRBs directly to adapter
object. Sending SRBs to SCSI device object works fine but when the device is
disabled there is no device object at all. The SCSI PASS THROUGH interface
also does not work through the Storport for the disabled SCSI device.
Is there a way to send the SCSI command to the disabled SCSI device via the
Storport?
Thanks a lot for advice. Tag: !srb Tag: 99759
Video Controller not found in Windows 2003
Hi,
I have a Windows 2003 server that, under Device Manager displays a
question mark under the Vieo Controller. The Video card within the
server is an ATI Radon X550. If I install the ATI supplied drivers the
installation runs well yet Remote Desktop fails.
If I uninstall the ATI driver, Remote Desktop works yet I get the
question mark. Searching through the internet, it seems that Windows
2003 supplies its own ATI drivers.
Is there a way I can reset this without having to reinstall the entire
server.
Thank You,
Al Tag: !srb Tag: 99758
Disabling USB memory drives in windows
Hi Guys,
It has been always a challenge to disable to USB drives on the
employees PCs specifically using memory sticks without disabling the
USB keyboard, mouse etc. The following article explains how to do
that. A good read.
http://knowurtech.com/windows/disabling_usb.html
Cheers!!
Dinesh Tag: !srb Tag: 99751
Reg:Debugging
I'm writing NDIS driver for RTL8139 ethernet card.Is there any
software for debugging.I need to restart every time when I get the
blue screen,which is time consuming.how can i avoid the blue
screen.Please help.
Thank You.
Raghu Tag: !srb Tag: 99740
can driver prevent the handle?
hi all,
I want to know that, after I get the VALID_HANDLE
from SetupDiGetClassDevs (do the handle with a USB
device), whether the driver can prevent the windows
to communicate with the USB device?
That is to say, can driver let windows to know
the USB device is connected on the port, but the
driver won't let windows to communicate with the
USB device? Tag: !srb Tag: 99739
can symbolicname be used to communicate with the device
I want to know after getting the USB device's symbolicname,
can I use it to communicate with the device?
If I can, what steps I shall take.
If I can not, how can I communicate with the USB device? Tag: !srb Tag: 99738
deleting a registry ke
I save some device specific information in the registry that is created with
ACCESS_ALL. Sometimes it is necessary go back to default configuration, so I
would like to delete the information. I am opening an handle to the key and
calling ZwDeleteKey, but I get an error with the status that I can't delete
it (0xC0000121). The information has a tree structure (the key itself
contains sub keys) and it also contains values. Is this the reason the
delete fails? I can delete the node easily enough using regedit, why can't I
delete it in my driver entry? Tag: !srb Tag: 99709
can symbolicname be used to get handle
hi all,
During the USB device design, a problem confused me.
I want to get the handle of the USB device, and the symbolicname
of this USB device in register, like following:
\??\USB#Vid_xx&Pid_xx#x&xx&x&x#{xxx..}
somebody told me, this symbolicname can be used in
CreateFile to create the handle.
After some tests (by change the symbolicname into the right
form), I can use the "new" symbolicname in createfile, and
the return handle is VALID_HANDLE.
I want to know, is this symbolicname the right parameter
in CreateFile?
And the handle is which handle? Can this handle be used
to communicate with the USB device? If it can, how? Tag: !srb Tag: 99704
how many sys file i need?
Hi all:
My device has to support xp32,xp64,vista32,vista64,so generally the
solutions is to have 4 sys files for each OS:
xp32.sys,xp64.sys,vista32.sys,vista64.sys(built with corresponding build
enviornments)
My question is: can i reduce my sys file numbers?
for example,use vista x86 build enviornment,and this vista32.sys supports
both xp32 & vista32.
Is this possible?How to do?
Or just one sys file to support all the OS,possible??
Thanks in advance. Tag: !srb Tag: 99703
How many packets in a PNET_BUFFER_LIST
Is there a way of telling how many actaul packets there are in a
NET_BUFFER_LIST?
Is there a packet (e.g. IP-packet, ARP request etc.) for every NET_BUFFER or
can a packet be divided on several NET_BUFFERS in the NET_BUFFER_LIST?
Brgds,
Fredrik Tag: !srb Tag: 99701
Bootloader execution halts for DaVinci Board DM6446 with 64mb memo
Hi,
I am working on DaVinci Board DM6446.
I have written a small utility program which loads my UBL in the SRAM and
then loads the Bootloader in the memory on the address depending on the
settings of .bib file and imagecnf.inc file
while executing the Bootloader i.e. during the step of downloading the
NK.bin file it stucks when it reaches to loading the record where actually
the executables of bin are since the size is maximum in it.
Also I am using a SDRAM of 64 mb only in the board.
The log that I am getting is: (there are certain tracing statements that
have been included by me):
BOOTME BOOTME BOOTME BOOTMEMAC addr is 0:e:99:2:51:c7.
EBOOT
ReadEnvByName:Unable to find next valid block
Environment Variables Respective Values
ENV_SIG ENVER1.11
DEVICE_ID DAVINCIXXXX
IP_GATEWAY 0.0.0.0
IP_ADDR 0.0.0.0
SUBNET_MASK 255.255.255.128
IP_SVR 0.0.0.0
SVR_SUBNET_MASK 255.255.255.128
BOOT_ADDR 0x00040000
TFTP_CONFIG 1
BOOT_MODE 1 ->BOOT_DOWNLOAD
Using device name: 'DavinciC751'.
Using Ethernet download.
IP Address: 0.0.0.0
Subnet Mask:255.255.255.128
Invoking EbootInitEtherTransport with Platform Name DavinciC751
InitDHCP():: Calling ProcessDHCP()
ProcessDHCP()::DHCP_INIT
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
1111Got Response from DHCP server, IP address: 10.31.178.193
ProcessDHCP()::DHCP IP Address Resolved as 10.31.178.193, netmask:
255.255.255.1
28
Lease time: 691200 secon
1111Got Response from DHCP server, IP address: 10.31.178.193
+EbootSendBootmeAndWaitForTftp
-DaVinciEmacSendFrame(rc = 0)
Sent BOOTME to 255.255.255.255
trace msg-DaVinciEmacSendFrame(rc = 0)
Locked Down Link 1
Src IP 10.31.178.193 Port 0800 Dest IP 10.31.178.137 Port 06E9
EthDown::TFTPD_OPEN::boot.bin
-DaVinciEmacSendFrame(rc = 0)
-EbootSendBootmeAndWaitForTftp
aaaaOEMPreDownload: Returning 0.
r
in switch case
Downloadentry entry
-DaVinciEmacSendFrame(rc = 0)
image signature is correct
BOOOFF
read image end
imagestart = 80007000 and lenght = 24919E4 1
In MultiBinNotifyAnshul 1
pcurrentdownloadfile = 83FDAD6C, region start -2147454976, length
38345188
OEMVerifyMemory: Image Start Addr 0x80007000 Image Length 0x024919E4
+OEMIsFlashAddr
OEMVerifyMemory: Clearing Memory from 0x80007000 to 0x824989E4
Second pcurrentdownloadfile = 83FDAD6C, region start -2147454976, length
383
45188
+OEMIsFlashAddr
size of rec 4 dwredaddress 80007000
+OEMMapMemAddr
+OEMIsFlashAddr
OEMMapMemAddr Address: 0
-OEMMapMemAddr
lpdest = 80007000
Read Data counter 1
Verify Checksum counter 1
Loading Image 0 %..Anshul progress
Anshul End while.
size of rec 8 dwredaddress 80007040
+OEMMapMemAddr
+OEMIsFlashAddr
OEMMapMemAddr Address: 0x80007040
-OEMMapMemAddr
lpdest = 80007040
Read Data counter 2
Verify Checksum counter 2
Anshul progress
Anshul End while.
size of rec 4 dwredaddress 80007048
+OEMMapMemAddr
+OEMIsFlashAddr
OEMMapMemAddr Address: 0x80007048
-OEMMapMemAddr
lpdest = 80007048
Read Data counter 3
Verify Checksum counter 3
Size of rec 685024 dwredaddress 80008000
+OEMMapMemAddr
+OEMIsFlashAddr
OEMMapMemAddr Address: 0x80008000
-OEMMapMemAddr
lpdest = 80008000
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
-DaVinciEmacSendFrame(rc = 0)
-----------------------------------------------------------------End of
log-------------------------------------
According to bib file settings the addrss is 80007000 for copying the nk.bin
file in the SDRAM and at address 80008000 it is placing the 3rd record which
is of size 30 mb(For nk.bin i have reserved 40 mb in .bib file and other
files synchronized)
And the code stucks here.
after sending 6 frames the code stucks and nothing happens on the
Hyper-terminal screen.
Can anybody plz help me out on this topic???
thanks
Anshul.. Tag: !srb Tag: 99700
How user wait for kernel?
Hello,
I am a new comer. I have a question:
My user application need to wait for kernel interrupt and than do something.
I think I will pass the request to kernel throught IOCTL call and wait for
return.
My kernel IOCTL function call
KeWaitForSingleObject
When interrupt happen, in ISR DPC, I will call
KeSetEvent
than my IOCTL function will return to user. Is this a good way to implement
this? If not, what is the best way?
Thanks,
Xinshou Tag: !srb Tag: 99696
delreg section in INF not truly deleting registry entry
I have a heisenbug I could use help on.
I have service that creates several registry keys. The service has an
associated INF file which has a DefaultUninstall section which is called by
our product's installer when removing the service. The DefaultUninstall
section calls out a delreg section which deletes about 20 keys from the
registry. All but one of these keys gets deleted correctly.
Now for the heisenberg portion of the bug. The installer prompts the user
for a reboot at then end of the removal process. If I pull up regedit
before saying yes to the reboot, the key in question is indeed not in the
registry any longer and is not when the system comes back from reboot. If I
do not pull up regedit and just reboot, the key is still present when the
system comes back from reboot. Obviously, regedit is causing the change to
be permanent in some way.
Is there some lazy write problem here? Is there a way from the INF I can
flush or commit the reg changes?
Thanks.
Bill M. Tag: !srb Tag: 99688
Verifier doesn't catch IRQL violation
I accidentally called ZwReadFile at APC_LEVEL IRQL (holding a fast mutex
actually) in a driver running on Vista RTM and got a weird result.
ZwReadFile just wouldn't return. No crash, no bad status return, the thread
just hung. Then of course the application was stuck with an open handle and
neither the app or the driver could die properly.
I turned on DriverVerifier for my driver with all options selected except
low resource simulation and it never complained.
It seems 1) ZwReadFile should be checking the current IRQL and returning a
bad status if it isn't PASSIVE_LEVEL and 2) DriverVerifier should have
caught this no?
Just FYI to any MSFT folks that might care.
I caught it pretty fast on my own, but this could cause someone no end of
pain if they didn't know what to look for.
Btw, this driver ran fine on XP SP2...don't know if that was (bad) luck or
just a change in under arching operation.
Haven't tried SDV on it yet.
Bill M. Tag: !srb Tag: 99684
KeDelayExecutionThread not waiting
Hi, why is this not waiting at all, there is no delay:
LARGE_INTEGER x;
NTSTATUS y;
x.QuadPart = 100000000I64; // wait 10 seconds
y = KeDelayExecutionThread( KernelMode, FALSE, &x);
Here, y == STATUS_SUCCESS meaning the wait was completed, but it was not,
and IRQL == PASSIVE_LEVEL. Tag: !srb Tag: 99679
Language Monitor
I wrote a language monitor for our custom made printers. It reads the status
of the printer every 30 seconds and flag if there is a problem with the
printer. Everything works fine, we can install different printers and it
works. The problem is when I reboot my PC, only the first installed printer
is seen by the language Monitor. I can see all the printers in the "Printers
and Faxes" window, but only the first one that was installed is polled by the
language monitor. I started our language monitor from the pjlmon example
from WINDDK.
--
Mario Tag: !srb Tag: 99677
Vista does not allow config space reads beyond 0xFF
I have verified in winDBG in pci!PciExternalReadDeviceConfig that it
checks the offset and verifies that the aligned offset is below
0x100. If it is at or above 0x100 then the returning status is
0xC0000010 or STATUS_INVALID_DEVICE_REQUEST which is exactly what I am
getting.
This is contrary to msdn documentation http://msdn2.microsoft.com/En-US/library/aa906253.aspx
that says extended config space access is allowed:
"Drivers can read from the extended PCI device configuration space
(that is, more than 256 bytes of configuration data) using the
IRP_MN_READ_CONFIG request or the GetBusData method of
BUS_INTERFACE_STANDARD"
Please tell me that I am wrong! I really would rather not calculate
the offset from 0xe0000000 (using bus, dev, func) and manually read
physical memory at that location to get to the extended config space.
I WANT to use OS calls!
Thanks.
Gabe Tag: !srb Tag: 99670
Ethernet driver buffer allocation
This may not be the proper spot to post, but I figured it was a good starting
point. I also suspect this may be dependent upon the actual Ethernet device
driver, and not an industry standard. That being said:
When data is transferred across an Ethernet connection using, say a TCP-IP
socket connection, the end caller issues a receive call, and passes in a
pointer to a buffer where the data is written.
My question is:
a) Is the data being transferred ONLY written into that buffer which is
passed in, or
b) is there an intermediate buffer contained w/in the driver to store the
data as it is transferred across the medium (and then copied into the buffer
passed in on the receive call)?
I am trying to minimize copies in my code, because I have large amounts of
data being transferred. Again, I realize that this may be totally dependent
upon the ethernet card being used, I just was curious if there was an
industry standard, or some underlying protocol/handshaking to which I was not
aware of.
Thanks. Tag: !srb Tag: 99669
Getting started modifying a NT serial card driver to run on XP
Hello
I have the source code to a driver that works fine on NT4 but we now
need to get it to work on XP. Our testing indicates that the driver
does not work on XP. It is possible that it is a configuration issue
however - as the driver gets some data from the registry - I am
checking if we have that correctly configured. But I am guessing that
is not the problem.
Should a driver written for NT4 work on XP without change? The driver
is for an RS422 multidrop card. Are there any areas of the driver
code which I should be watching out for? Is this a total re-write
situation or only minor changes?
Any comments would be much appreciated.
Angus Tag: !srb Tag: 99666
Can't get reading extended config space to work on Vista
I am pretty sure that the BIOS is allowing Vista to take control of
PCIe since in WinDBG I can do a !pci 0x101 3 0 0 (my device is on bus
3, dev 0, func 0):
..[Config Space 0x00-0xFF omitted]...
Enhanced Capabilities:
100: CapID 0002 Virtual Channel Capability
Version 1
NextPtr 800
800: CapID 0001 Advanced Error Reporting Capability
Version 1
NextPtr 000
However on another machine running Vista where I'm pretty sure the
BIOS does not do the _OSC method and I think it is verified when I
run !pci 0x101 on the same device there will be no "Enhanced
Capabilities listing at all.
Neither of the two Microsoft sanctioned ways (that I am aware of (i.e.
GetBusData and IRP_MN_READ_CONFIG)) to access extended config space
worked for me. I have even used the example verbatim from
http://msdn2.microsoft.com/en-us/library/ms795302.aspx. The status
returned from the IRP_MN_READ_CONFIG method is
STATUS_INVALID_DEVICE_REQUEST.
I've even tried installing Vista SP1 Beta, but the results are the
same.
Any other venues I should take/investigate?
Thank you in advance.
Gabe Tag: !srb Tag: 99663
Hi there
Is the !srb extension supposed to work for storport drivers?
The same question about SCSIkd.dll and Minipkd.dll extensions