how to change data output in TestCap Example on DDK
hi all,
i am seeing TestCap example on DDK, it very complex, i do not know change
output data of it at which function, pls anybody help me???
Thanks very much,
David, Tag: Helpme Driver Canon LP460 for WinXP Tag: 81890
vmware & usb isochronous transfers
Hi everyone,
Bit of an esoteric question here..
The latest VMware workstation now supports isochronous transfers for USB
devices. I've checked it works using a USB audio device in conjunction
with microsoft's usbaudio.sys driver.
But for some reason my own (in-development) driver is not able to do
isoch transfers. I don't get returned any errors when submitting the
requests, but my IoCompletion routine does not get called in a timely
fashion, and from monitoring I can see that the usb requests to not make
it to the wire.
I've checked over and over to make sure my requests are good, and can't
see anything out of line (I've been using the isousb sample code as
inspiration). The driver works fine when used normally (i.e. not under
vmware).
Does anyone have experience of this, or know of any special requirements
for vmware - usb isoch?
Thanks,
Nick Tag: Helpme Driver Canon LP460 for WinXP Tag: 81889
HDD Filter Driver
Hi, I am new in device driver development. i am looking for some easy
tutorial to implement HDD Filter. Is there any tutorial ?
Regards
jahid Tag: Helpme Driver Canon LP460 for WinXP Tag: 81885
About DMA : Packet Based & Common Buffer
Can you give me som info about them ->
First of all which one is more common ?
Which devices use PacketBased DMA and which devices use
CommonBuffer , and also which use both of them ?
Finally which devices generally have their own DMACs ? (bus-masters) Tag: Helpme Driver Canon LP460 for WinXP Tag: 81884
PnP: What is causing this rebalance?
I'm modifying the toaster bus sample to support other devices, and no
matter what resources I request for these devices, the PnP system tries
to rebalance and (eventually) fails. I can't figure out what resources
are in conflict.
Here is the output from kd for the resources I'm requesting for this
particular device:
ResReqList: Interface: ffffffff, Bus: fff, Slot: 0, AlternativeLists: 1
Alternative List: DescCount: 1
Opt: 1, Share: 3 IO Min: 0:00000000, Max: 0:0000ffff, Algn: 1, Len
1
This port range does include some ports that are not in use by any
other device, as near as I can tell from the other Resource Requirement
Lists printed out in kd. Is there another way to see where the conflict
is happening?
One other curious thing: My bus driver FDO gets
IRP_MN_QUERY_STOP_DEVICE, which it succeeds, and then it immediately
gets IRP_MN_CANCEL_STOP_DEVICE. Could that be part of the problem, and
if so, how do I find out who's failing the QUERY_STOP_DEVICE?
Thanks,
John Tag: Helpme Driver Canon LP460 for WinXP Tag: 81877
About DMA : Packet Based & Common Buffer
Can you give me som info about them ->
First of all which one is more common ?
Which devices use PacketBased DMA and which devices use
CommonBuffer , and also which use both of them ?
Finally which devices generally have their own DMACs ? (bus-masters) Tag: Helpme Driver Canon LP460 for WinXP Tag: 81875
USB class
For a long time, Microsoft has been mentioning in this group (and
various places in the documentation) that peripherals are required not
use Class=USB in their infs because that's reserved for host controllers
and hubs. Dire WHQL consequences have been hinted at.
I was just trying to convince one of our firmware guys of this, and he
pointed out that there are several .inf files in Windows\INF that
violate this rule, including many that are WHQL signed... notably many
things that act like thumb drives such as media players, as well as a
couple of modems (mostly this question comes up around here with respect
to development devices such as FTDI/EZ-USB/etc.).
So... What's the current state of this advise? What's the actual fallout
if you violate this rule?
--
Ray Tag: Helpme Driver Canon LP460 for WinXP Tag: 81859
Vista TCP
I'm having a problem with a 802.11n WiFi driver I am developing for Vista
(build 5384).
When I use a static IP address, everything works fine. However, if I use
DHCP, I don't get a DHCP address allocated to me from the AP.
I know DHCP in Vista 5384 works because I have a Realtek 8185 802.11g card
that works OK.
Here are a couple of clues to the problem:
1. The first thing I found was that the driver was transmitting the DHCP
DISCOVER broadcast packet and then receiving a DHCP OFFER broadcast back
from the AP. However, the driver's packets filters were setup to handle
only DIRECTED (i.e. unicast) packets. This seemed a little strange, since I
believe during TCP protocol initialization the driver should be called to
set the the MULTICAST and BROADCAST filters.
2. Thinking that perhaps I had a problem with the packet filters, I
jury-rigged the driver to accept all packets which then started indicating
the DHCP OFFFER broadcasts up to the protocols. This did not work. TCP
still would not transmit a DHCP REQUEST packet to the AP.
3. Thinking that I still have a problem with the packet filters, I add more
debug traces to the driver and rerum the test. PRESTO! Now I have a valid
DHCP address from the AP. Strange. However, now I cannot ping the AP.
Anybody have any thoughts about this problem?
((&-> Tag: Helpme Driver Canon LP460 for WinXP Tag: 81851
USB 2.0 isoch irp IoCompletionRoutine delayed on SMP machines
Hi all.
I'm developing a USB 2.0 driver for XP that runs in and out isoch and
bulk pipes at the same time.
On SMP machines I'm seeing the following issue: As long as only isoch
irps are submitted, the isoch irp IoCompletionRoutine gets called
immediately (or at least less than 1 ms) after the IN stream urb was
filled with data.
However, as soon as bulk or control requests are submitted
asynchronously, there is a certain chance that the callback into the
isoch IoCompletionRoutine gets delayed for up to 10 ms.
This happens only on SMP machines and only with the MS USB 2.0 EHCI
driver, I'm not seeing any starvation on single processor systems or
when using the USB 1.1 UHCI driver on SMP systems.
The starvation always occurs if the bulk request was submitted right
before the isoch IoCompletionRoutine is due.
I tried synchronizing the bulk requests with the isoch requests (i.e.
only issue a bulk request immediately after an isoch request). This
reduced the frequency of the starving issue a lot. However, I'm still
seeing delays from time to time, especially if the bulk traffic is high.
Another workaround might be to set the processor affinity for both, the
isoch and the bulk requests to the same CPU. However, to do this, I
would need to change the processor affinity of the EHCI DPC that issues
the IoCompletionRoutine. Is there a way to retrieve the PKDPC from the
IoCompletionRoutine? I guess not.
So my question is: Is this a known issue, and if so, is there a better
workaround?
-- Stephan Tag: Helpme Driver Canon LP460 for WinXP Tag: 81848
avstream pin allocator framing requirements
Hi everyone,
I'm in the middle of writing my first avstream-based minidriver, and
have been experimenting with the behaviour of everything. I'm confused,
though, when it comes to the concept of allocator framing.
I gather from the DDK documentation that I should be able to declare a
KSALLOCATOR_FRAMING_EX struct and point to it in my pin descriptor, and
through it specify what frame sizes my pin's process dispatch can accept.
DECLARE_SIMPLE_FRAMING_EX(PinFraming,
STATIC_KS_TYPE_DONT_CARE,
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY,
1024, // Frames
FILE_BYTE_ALIGNMENT,
6, // MinFrameSize
6 // MaxFrameSize
);
Now with these requirements specified by my pin, I'd expect to be given
up to 1024 frames, each of 6 bytes in size, in one call to my process
dispatch. What I actually get passed is one frame 8192 bytes long,
clearly beyond the range I specified.
Any ideas why the system is ignoring my framing requirements?
I've tried specifying much larger frame sizes, but the system still
passes me 8192 bytes.
Help!
Thanks,
Nick Tag: Helpme Driver Canon LP460 for WinXP Tag: 81847
USBPrint.sys on Windows XP SP2
What would be the conditions (or reasons) for usbprint.sys to stop sending
the SOF to a printer device?
Is there a maximum number of errors reported by the printer device that
USBPrints.sys would shutdown the USB communication?
Any other information would help.
Mario Tag: Helpme Driver Canon LP460 for WinXP Tag: 81846
How to set the uninstall order of drivers with DIFxApp?
I've created an installation package with InstallShield 11.5 for Windows.
It installs four different drivers using "ready made" DIFxApp functions ie.
the device driver wizard of InstallShield. One of the drivers is the parent
driver for all the remaining three drivers. The installation works fine, but
when I have to uninstall the drivers there is a problem: I should be able to
tell the order in which the drivers are uninstalled.
Is there a possibility to tell the DIFxApp the order in which the drivers
should be uninstalled? I did not found any solution to this in InstallShield
help, so I wanted to ask if anybody has already had to figure this out. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81839
HELP: How to debug "stuck IRPS" in TDI filter
Hi
Our product contains TDI filter and File system filter driver.
Lately, several applications began to stuck with no known reason. I
think that one of our filters causes some of the IRPS to "get
stuck" so the user mode process isn't getting a response to its
request and it gets stuck too.
These are the symptoms:
-Two computers that sometimes have their telnet application stuck when
it tries to disconnect.
-One computer had it's excel stuck. I don't know if excel is
creating some kind of communication so I don't know if the problem is
in the TDI or the file system filter.
-One computer that runs AutoIt (a QA helper app). The AutoIt got stuck
and afterwards all iexplore, msnm, and outlook got stuck (the
application window is freeze after I run it). The wired thing is, that
mozilla firefox runs OK!
All the problems occurred after SEVERAL DAYS of work while our product
was running.
Because most of the problems were in communications apps, we think
it's the TDI filter.
Any idea how to debug such a problem?
Is there a way to get all the stuck IRPS for a process or a driver?
(Maybe doing a manual dump and get it from there?)
Thanks for any help. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81831
Serial Joystick
Hello Group
I'm new in driver development. And must admit that this is realy
complicated for me :). My problem is like that:
I have a joystick that use the serial port. My goal is to write a
"driver" that use this serial port but acts like a joystick which is
selectable in the game controller dialog.
I've found out that I need the sermouse and the vhdmini example to to
that. But could what are the steps that I have to do. Or is there any
example code anywhere? I hope you guys could help me.
thanks Tag: Helpme Driver Canon LP460 for WinXP Tag: 81829
Scanner WIA Driver
Hi,
I'm developing a wia driver for a scanner, but I can't understand the
different behavior of MS Paint and MS Office.
If I scan with Paint I have a mirrored and rotated image, but in Office
(Word etc) I don't have this behavior.
Do you know why ?
Can I modify this, to have the same behavior?
Thank you Tag: Helpme Driver Canon LP460 for WinXP Tag: 81828
Strange difference between XP and win2k driver
Hi,
Im am currently "porting" a XP driver to Win2k and during the process i
got stuk on a wierd problem when trying to read from the USB. The USB
device chip is a ftdi um245R.
When reading from it in XP, that works ok i do:
UsbBuildInterruptOrBulkTransferRequest(
¤t->dUrb, sizeof(_URB_BULK_OR_INTERRUPT_TRANSFER), pdx->myPipe, &buffer->data, NULL, pdx->bufferChunkSize, USBD_TRANSFER_DIRECTION_IN
| USBD_SHORT_TRANSFER_OK,
NULL
);
KeInitializeEvent(¤t->dEvent, NotificationEvent, FALSE);
current->dIrp = IoBuildDeviceIoControlRequest(
IOCTL_INTERNAL_USB_SUBMIT_URB, // IoControlCode
pdx->LowerDeviceObject, // DeviceObject
NULL, 0, NULL, 0, TRUE, ¤t->dEvent, //
Event
¤t->dIostatus // IoStatusBlock
);
if (!current->dIrp) {
KdPrint((DRIVERNAME " - Unable to allocate IRP for sending URB\n"));
goto endThread;
}
stack = IoGetNextIrpStackLocation(current->dIrp);
stack->Parameters.Others.Argument1 = (PVOID) ¤t->dUrb;
status = IoCallDriver(pdx->LowerDeviceObject, current->dIrp);
KdPrint((DRIVERNAME " - IoCallDriver 1 returned: %8.8X\n",status));
This works fine in XP, status returned from IoCallDriver is 0x103.
But when i do the same thing in Win2k i get a status of 0xC000000D
which in my test application translates to ERROR_INVALID_PARAMETER. The
test application is exactly the same code in xp and win2k. Can someone
please help me with this, i have no clue on why it behaves like this
since i believe that this is the correct syntax of doing a read.
Regards
Wilhelm Tag: Helpme Driver Canon LP460 for WinXP Tag: 81825
SDIO: Is cmd53 tested with sdbus driver in XP, SP2 for block mode
Hi,
I'm doing sdio driver on XP SP2. This SDIO driver is compiled using 2003
SP1 ddk. SDIO card is coming up properly and i could do several
operations using CMD52 (read/write etc). I have not enabled the
interrupts yet. Now, i'm trying the CMD53. CMD53 works fine in byte
mode. That is BlockMode in SD_RW_EXTENDED_ARGUMENT is set to 0 and the
parameters in SDCMD_DESCRIPTOR set to SDTT_SINGLE_BLOCK and SDRT_5.
But when i try the SDTT_MULTI_BLOCK mode, the command sent on the bus is
not proper. I captured the CMD53 on the bus using LA, and this is what i
found.
My block size set was 4 bytes. I was trying to read/write 8 bytes so
that two blocks of transaction should happen. But all the time, the
CMD53 on the bus had 8 as Block Count. After i did some different
exercise, i found that the Parameters.DeviceCommand.Length is sent as
block count for CMD53 instead of .u.bits.Count in
SD_RW_EXTENDED_ARGUMENT. (I made sure that the Block Mode in
SD_RW_EXTENDED_ARGUMENT is set to 1 so that even on the bus i see the
same for cmd53. I do not see any response from the SDIO card for this
and also, the bus driver is returning back, 0xC0000185 or 0x80000011..
My sdio card supports block mode (the card capability reg- 0x08 of cccr
reads 0x1F .....)
Is the bus driver in XP SP2 tested with CMD53 block mode (or
SDTT_MULTI_BLOCK) ?
I have attached the CMD53 function i've written, along with this mail...
Please let me know if there is any problem.
Eliyas, please help !
Rgds
Esha
------------------------------------
NTSTATUS
SdioReadWriteBuffer(PDEVICE_OBJECT fdo,IN ULONG Function,IN PUCHAR
PBuffer,IN ULONG Address,
IN UCHAR BlockMode,IN ULONG Length,IN BOOLEAN WriteToDevice,OUT PULONG
BytesRead)
{
PFDO_DATA fdoData;
PSDBUS_REQUEST_PACKET sdrp;
SD_RW_EXTENDED_ARGUMENT extendedArgument;
NTSTATUS status = STATUS_SUCCESS;
PMDL Mdl=NULL;
UCHAR i;
PUCHAR pBuf=NULL;
ULONG BlockSize=0;
ULONG len = Length;
ULONG Data=0;
SDCMD_DESCRIPTOR ReadIoExtendedDesc =
{SDCMD_IO_RW_EXTENDED, SDCC_STANDARD,SDTD_READ,
SDTT_MULTI_BLOCK , SDRT_5};
//{SDCMD_IO_RW_EXTENDED, SDCC_STANDARD,SDTD_READ,
SDTT_MULTI_BLOCK , SDRT_1};
SDCMD_DESCRIPTOR WriteIoExtendedDesc =
{SDCMD_IO_RW_EXTENDED, SDCC_STANDARD,SDTD_WRITE,
SDTT_MULTI_BLOCK , SDRT_5};
fdoData = (PFDO_DATA)fdo->DeviceExtension;
SdioDbgPrint(TRACE,"cmd53: fn %d len %d,add 0x%X blkmode %d WrRd
%d\n",Function,
Length,Address,BlockMode,WriteToDevice);
if(BlockMode == BYTE_MODE)
{
ReadIoExtendedDesc.TransferType = SDTT_SINGLE_BLOCK;
WriteIoExtendedDesc.TransferType = SDTT_SINGLE_BLOCK;
//len = BlockSize;
len = Length;
}
else
{
//(Function == FN0) ? (BlockSize = fdoData->BlockSizeFN0) :
(BlockSize = fdoData->BlockSizeFNx);
//status = SdioReadWriteByte(fdo,
FN0,(PUCHAR)&BlockSize,FN0_BLOCK_SIZE_REG,FALSE);
//just for testing, make sure that the same is written in
FN0_BLOCK_SIZE_REG before running this
BlockSize = 0x04;
SdioDbgPrint(TRACE,"\nBlksize 0x%X\n",BlockSize);
//Round of the length to the block size
if(Length % BlockSize)
len = (((Length / BlockSize) * BlockSize) + BlockSize);
else
len = ((Length / BlockSize) * BlockSize);
}
SdioDbgPrint(TRACE,"Calc len 0x%X\n",len);
pBuf = ExAllocatePool(NonPagedPool,len);
if (!pBuf) {
return STATUS_INSUFFICIENT_RESOURCES;
}
RtlZeroMemory(pBuf, len);
if (WriteToDevice)
RtlCopyMemory(pBuf,PBuffer, Length);
// first, get an MDL to map the data. Call IoAllocateMdl to
// allocate an MDL and pass in a pointer to a buffer
// allocated from the non-paged pool.
Mdl = IoAllocateMdl(pBuf, len, FALSE, FALSE, NULL);
if (Mdl == NULL) {
ExFreePool(pBuf);
return STATUS_INSUFFICIENT_RESOURCES;
}
MmBuildMdlForNonPagedPool (Mdl);
// next, allocate a request packet for the arguments of the command
sdrp = ExAllocatePool(NonPagedPool, sizeof(SDBUS_REQUEST_PACKET));
if (!sdrp) {
IoFreeMdl(Mdl);
return STATUS_INSUFFICIENT_RESOURCES;
}
RtlZeroMemory(sdrp, sizeof(SDBUS_REQUEST_PACKET));
sdrp->RequestFunction = SDRF_DEVICE_COMMAND;
extendedArgument.u.AsULONG = 0;
if(BlockMode == BYTE_MODE)
{
extendedArgument.u.bits.BlockMode = 0;
extendedArgument.u.bits.Count = len;
}
else
{
extendedArgument.u.bits.BlockMode = 1;
extendedArgument.u.bits.Count = len / BlockSize;
}
SdioDbgPrint(TRACE,"cmd53:set Count %d, blkmode
%d\n",extendedArgument.u.bits.Count,
extendedArgument.u.bits.BlockMode);
extendedArgument.u.bits.Function = Function;
extendedArgument.u.bits.OpCode = 1; // increment address
extendedArgument.u.bits.Address = Address;
if (WriteToDevice) {
extendedArgument.u.bits.WriteToDevice = 1;
sdrp->Parameters.DeviceCommand.CmdDesc = WriteIoExtendedDesc;
} else {
extendedArgument.u.bits.WriteToDevice = 0;
sdrp->Parameters.DeviceCommand.CmdDesc = ReadIoExtendedDesc;
}
sdrp->Parameters.DeviceCommand.Argument = extendedArgument.u.AsULONG;
sdrp->Parameters.DeviceCommand.Mdl = Mdl;
//This send the Block Count in CMD3 as the blocksize * num of block and
//makes the system crash - BSOD
//sdrp->Parameters.DeviceCommand.Length = len;
//With this the SdBusSubmitRequest returns 0xc0000185 status and
//the Block count in CMD53 gets the actual byte read/write length
//sdrp->Parameters.DeviceCommand.Length = Length;
//This send the Block Count in CMD3 as proper block count, but
still the
//bus drivers gives status as 0xc0000185 or 0x80000011
sdrp->Parameters.DeviceCommand.Length =
extendedArgument.u.bits.Count; //len;
// finally, submit the request
status = SdBusSubmitRequest(fdoData->SDBusInterface.Context,sdrp);
SdioDbgPrint(TRACE,"cmd53: resplen: %d\n",sdrp->ResponseLength);
SdioDbgPrint(TRACE,"cmd53: sts: %X \n",status);
SdioDbgPrint(TRACE,"cmd53: info: %X\n",sdrp->Information);
if (NT_SUCCESS(status) && !WriteToDevice) {
*BytesRead = Length;
RtlCopyMemory(PBuffer, pBuf, Length);
}
IoFreeMdl(Mdl);
ExFreePool(pBuf);
ExFreePool(sdrp);
return status;
}
---------------------------------- Tag: Helpme Driver Canon LP460 for WinXP Tag: 81823
where can I find the definition of USB_STATUS_XXX code?
where can I find the definition of USB_STATUS_XXX code on return of USB
host controller driver? Thanks a lot!
Best Regards
Amanda Lin Tag: Helpme Driver Canon LP460 for WinXP Tag: 81808
How to view earlier posts?
Hi everyone,
Every time I connect to this site, my Outlook only load a portion (I have no
idea how it selects) of the posts. How can I download the rest posts (I will
not waste the space and the time of the experts if similar questions have
already been asked and answered)?
Thanks in advance. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81799
Install KMDF on Win2k
Hi everyone,
I downloaded KMDF, but my Win2k professional seems not recognize the
WDFv10.iso file. How can I install it? Do I need another tool for .iso file?
Thanks in advance. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81791
Which miniport created \Device\HardDisk%d?
I'm working on a Windows diskless boot solution (using SRP over an
Infiniband adapter) and I need to know on behalf of which miniport
each \Device\HardDisk%d device object was created. This is so that I
can distinguish the Disk device objects that were created on behalf of
my SRP SCSI miniport from those corresponding to local hard drives.
This lets me choose the proper partition to mount the boot volume from.
I know how to get the device objects for each \Device\HardDisk%d, but
I don't know how to tell which SCSI (or whatever) miniport discovered
the physical drive that the object represents.
Any advice would be appreciated.
Rob Netzer
System Fabric Works, Inc.
rob@systemfabricworks.com Tag: Helpme Driver Canon LP460 for WinXP Tag: 81790
Cache Coherency
In an earlier post[1], Stephan Wolf says "On x86, there is no need to
take care of any caching issues at all because x86 always guarantees
cache coherency."
I may be taking him too literally, but I don't see how that can be
true. I've got a PCI adapter using a PLX 9030 that presents a 1K
memory buffer at PCI BAR4 which is marked as cacheable to the OS. This
is mapped in at DriverLoad using MmMapIoSpace() with MmCached.
Once the OS is done transferring data out of the buffer, the buffer is
released back to the adapter to refill with incoming data. When the
memory is done refilling, the adapter hands ownership of the memory
back to the OS and an interrupt is asserted.
The problem I'm trying to address is how to ensure the CPU reloads its
internal cache with the new data since I can see no way that it can be
aware of the changes. The PLX 9030 is a target only device, so it
can't master a special cycle on to the system bus. And I didn't see
any way the CPU could snoop the memory for changes.
The natural (and documented) way to keep the cache coherent is to call
KeFlushIoBuffers() in the IRQ DPC before reading the buffer. But, as
Stephan mentions, and as I've confirmed, this is completely macrolized
away for x86 builds. It doesn't do anything.
I haven't seen any HAL'd abstractions in the MmXxx() or KeXxx()
routines that invalidate specific cache lines, so I think I'm being
forced to get a little closer to the metal.
It looks like the right thing to do would be to issue an CLFLUSH[2] op
sandwiched between two MFENCE ops. But, that's pretty brute force, and
I'm not sure these are supported by AMD. At least I couldn't find a
definitive reference. If they definitely are, or if there's a
different way to flush a cache line on AMD, let me know.
Of course, WBINVD will work, but that flushes the whole cache to system
memory, and all I need to make coherent is a tiny chunk that's <1K.
Mighty inefficient.
Another alternative would be to issue an INVLPG, but that seems to get
all over the Memory Manager's business. If this were the right way, it
would probably be better to MmUnmapIoSpace() and then re-map them.
<gack>
Hopefully this wasn't too newb. I've looked around the net and here
for answer, so fire away!
-Mark
[1]
http://groups.google.com/group/microsoft.public.development.device.drivers/browse_frm/thread/7b6104ea25dfcebb/351bc138b87e61b1?q=cache+flush&rnum=4#351bc138b87e61b1
[2] Sure wish there was a MmFlushCache(base, size, read_not_write)
call. Wait! There's KeFlushIoBuffers() now. :-/ Tag: Helpme Driver Canon LP460 for WinXP Tag: 81778
Two filters in one AVStream driver
Hello, All.
I'm working on AVStream minidriver. And I want to create minidriver
that will provides DirectShow filter to the user mode application all
time while device is connected to the system and another one filter type
that will be seen by system only then my device is switched in special state
(looking at hardware state). And another one requirement is that these
filers have different category (I mean category like "Video Capture
source").
In AVStream documentation I have found two ways to implement additional
filter type from same device. The first one is to implement two filter
factories
in one minidriver and to create filters of each type separately from driver.
Does system notifies appications about new filters arrival in this case?
Does there is possibility to point system that these filters have different
categories (capture and decode, for example).
The second way is to create AVStream child device. But it is not clear for
me
what driver will serves this child device.
Please help me to clear these questions.
Andrey Tag: Helpme Driver Canon LP460 for WinXP Tag: 81772
Video-Capture Card Device Driver ??
1. I want to write a device driver for a PCI video-capture card
And in ddk docs related topics are :
Kernel-Streming
AVStream Minidrivers
Streaming Minidrivers
Audio Drivers
Video Capture Drivers
USB Camera Drivers
DVD Minidrivers
Broadcast Driver Architecture Drivers
AV/C Client Drivers
in WHDC pages it says , KS is a former model of AVStream vs. vs.. But KS is
still in ddk docs
For the moment , can you guide me about my video-capture-driver challenge ,
KS or AVS ?
What about selecting framework -> streaming-mini, filter-centric or
pin-centric ??
And also what about AV/C Client drivers , do i need to write it ??
(Other resources will make me very happy , if available for streaming... )
2. DDK Docs say :
"Audio/Video streaming (AVStream) client minidrivers (Microsoft® DirectX®
8.0, Microsoft® Windows® XP and later versions of the
operating system) are typically written in C++. "
Why typically C++ ? Is it a must or an advice for good coding or anything
related with DirectX ?
3. What about needed minimum hardware knowledge for this project , what must
i know about my video-capture card to write it's driver ?
/* If anyone could provide any suggestions or insight, I'd be very
appreciative. */ Tag: Helpme Driver Canon LP460 for WinXP Tag: 81770
NdisMIndicateStatus max buffer
Hi,
Does any one know if there is any limitation on the buffer size
given to NdisMIndicateStatus?
Thanks
Miki Tag: Helpme Driver Canon LP460 for WinXP Tag: 81767
What am I doing when I read/write to LPT1 ?
I am just curious, but what am I actually doing when I
CreateFile to LPT1, is there a protocol which explains
this? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81765
WinXP SDIO INF
While making sdio inf file what has to be reffered to the Class ,class
GUID directive of version section
I have doubt bcos the in the devguid.h file of include folder (along
with ddk) there is not any section for SD or SDIO
Do I need to use Unknown section
I need some idea on making an Insataller application for my SDIO.
I also need an sample sdio inf file Tag: Helpme Driver Canon LP460 for WinXP Tag: 81763
Hiding device entry
Hi all
I want to hide my device entry under device manager in Windows XP . I
came across a post which said when we set the DEVNODE status flag to
DN_NO_SHOW_IN_DM we can acheive this. But the configuration manager part has
API calls only to get the status of the devnode. Does anyone know how to set
this flag. Is there any other means to hide device entry. My driver is not a
filter driver.
Mk Tag: Helpme Driver Canon LP460 for WinXP Tag: 81762
how to use DbgView
hi all,
i try install TestCap Example in DDK into my syatem and use DbgView to see
output debug message, but i can not, anybody help me how to use DbgView to
see debug message?
Thanks,
David, Tag: Helpme Driver Canon LP460 for WinXP Tag: 81760
Stop Service
Experts!
I have a device conected to my computer with a USB,
i want to stop this device and then start it again.
i selected disable in the device manager and the device was disable
successfully.
But when i tried to do it programmaticatly it failed.
I tried calling "net stop service_name_blabla" from the command line.
and i tried using SERVICE_CONTROL_STOP,in ControlService
but they both failed, reason:
"The requested control is not valid for this service. " error
how can i disable the service with C++ like i'm doing well in the device
manager ?
thanks. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81759
Get Device Descriptor from User Mode
hello all,
I am facing a problem, how to det the device descriptor of USB device
from User Mode,
I just know VID n PID of the device. It could be great if a piece of
code is availble.
thanks
sachin Tag: Helpme Driver Canon LP460 for WinXP Tag: 81758
Setting DefaultInputSlot in a PPD?
Hello all,
I build print drivers with the PostScript OEM customization tools, and I'm
stuck on some driver/PPD interaction. The second tab in DocumentProperties
is normally Paper/Quality, with two drop downs for Paper Source and Media.
These are populated from the PPD via InputSlot and MediaType sections.
The problem is that the PPD parser (or some other component) does not honor
the DefaultInputSlot and DefaultMediaType directives, and it does its own
thing. I'm using the German version, and the phrase "Automatisch Auswahlen"
("Automatically Select") is filled in for us. This phrase does not appear in
the PPD, but does appear in PS5UI.DLL's resource section.
This all means that we're not able to set a reasonable default, and this is
causing us some real problems for a customer implementation. If we change
the default in the UI, it "sticks", but we don't have portable access to the
DEVMODE to muck with it ourselves.
Looking in the MSDN docs:
http://msdn.microsoft.com/library/en-us/print_d/hh/Print_d/pscript_34563439-cd1f-4418-b51d-a3250e35df28.xml.asp
It seems clear that InputSlot is being handled specially, and it suggests to
me that DefaultInputSlot is simply ignored entirely.
Looking at the IPrintOemDriverPS::DrvGetDriverSetting helper function, it
seems that I'm able to *fetch* values, and IPrintCorePS2 lets me enumerate
them, but I think I cannot find any mechanism to *set* these options.
Is there any way I can set a default value for this field when the driver is
installed without requiring the user to click a box after install?
Thanks all,
Steve
--
Steve Friedl / UNIX Wizard / Microsoft MVP / www.unixwiz.net Tag: Helpme Driver Canon LP460 for WinXP Tag: 81755
SDIO multi-block write support (WinXP SP2)?
I'm developmenting a SDIO WLAN client driver in WinXP SP2.
When I use SdBusSubmitRequest() to send a CMD53 with multi-block.
The "Byte/Block count" field in CMD53 will be overwrite with the
length of the MDL (when < 64 bytes) or 64 bytes (when > 64 bytes).
Does SDBus support SDIO multi-block mode?
If yes, how to program it? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81753
I2C slave device address
Hi all,
I am in a very strange situation for the I2C bus slave device address
manipulation.
Basically I have some slave devices which I communicate over the I2C
bus. They work fine on different machines with Intel motherboard. The
problem arises when I connect a specific slave device to the Intel
82865G machine.
The address I am sending over the I2C bus for the slave device is not
acknowledged by the device. The same address is acknowledged by the
device on another intel machine.
According to the I2C specs, the slave device is supposed to send the
acknowledgement when Master finsishes sending the Bits of the address
byte by pulling the SDA line low. But in this case the slave device is
not pulling the SDA data line low.
I have tried many cases.. like increasing the delay between the SCL ,
SDA check, checking the video memory, assigning the different address.
But nothing is working.
I am not sure whats the difference between I2C bus on one motherboard
and that of another. Both are Intel 82865G.
I communicate with the I2C in a driver for a graphics cards and for
Intel I directly get the Video memory, convert it to the Physical
memory and write to the DDC registers.
I am able to send the Start condition on the I2C bus , but when I send
the address of the Slave device , its not acknowledging. Other slave
devices of Same type work fine.
It will be very helpfull If somebody can tell me whats going on over
the I2C bus for this.
Thanks.
--
Abhijit. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81752
How long does it take to read a usb report?
I am trying to check what is the maximum speed for
read/writes of my pic 18f4550 usb device.
It is a full speed device and an
8 byte length report, and I am using ReadFile and
WriteFile. My results are that I get about 100 read
write cycles in one second. Is that a normal speed
for 8 byte reports? It seems quite slow ? My C loop
is tight, and my device is a loopback device, i.e. it simply
copies the input to the output? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81729
sscanf
Have been searching around without succes on this: Is there a recommended or
'standard' alternative to swscanf for use in a driver? (I'm wanting to parse
a WSTR from the registry). Tag: Helpme Driver Canon LP460 for WinXP Tag: 81727
Driver design interogation...
Hi,
I am new on driver development so my question may be stupid for guru ^_^...
My driver is base on passthru NDIS from DDK, I try to develop an IP filter
and HTTP-DNS content filter.
I want to use SQLite to store a big list of ip and rules. I want to put this
code on a service.
My design question is :
- Is this solution is correct ( speed, complexity,... ).
- How my driver can communicate with the db service.
I see some info on WMI, but I have some interrogation on performance.
Thanks for your help,
A++ Tag: Helpme Driver Canon LP460 for WinXP Tag: 81726
Ndisprot problem with Intel Pro/Wireless 3945ABG
Hi,
I have developped an application able to control the laptop wifi adapter by
setting and querying the oids OID_802_11 via the Ndisprot provided in
Windows DDK 3790.
This application works perfectly with the chipset Intel Pro/Wireless 2200BG
and Intel Pro/Wireless 2100 and many other chipsets.
The problem is that when I try to use it with the chipset Intel Pro/Wireless
3945ABG the oid OID_802_11_SSID does not work. The connection is simply not
established and the IP is not retrieved. All the others oids works fine.
Did you have any idea about it? Is it a known bug? Did you ever try the
Ndisprot with Intel Pro/Wireless 3945ABG?
I've already tried also the Ndisuio approach (using the source code of the
DDK 2600.1106) obtaining exactly the same result: no connection is
established when the OID_802_11_SSID is set. All the others oids works fine.
Thanks
Davide Tag: Helpme Driver Canon LP460 for WinXP Tag: 81723
How to save data in Display Driver?
Hello,
I need to save some information(for example, data in memory buffer) in
Display Driver, but i don't know how to do this.(ZwXxx Routines?)
Anyone can help me please?
Thanks! Tag: Helpme Driver Canon LP460 for WinXP Tag: 81722
Network Refresh slow on S3 wake up using Keyboard key press
Hi all,
When a XP PC is put in the sleep mode (S3), there is no network
refresh happening immediately when PC comes out of S3 by means
of pressing a key on the keyboard. The network refresh happens
randomly from 40 seconds to 1 minute or even more sometimes.
I want to get the network refresh done as soon as the PC
comes out of S3. Can anyone help me ?
Sri Tag: Helpme Driver Canon LP460 for WinXP Tag: 81520
how to reset a USB device from user mode
Sometimes I experienced the device failed enumeration. I need unplug and
plug back that device again. Is there any solution that my user mode
application can do that for me?
Given the handle to a USB hub and port number. How could I reset the device
connected to that port from user mode application?
I noticed there is IOCTL_USB_HUB_CYCLE_PORT defined in wxp ddk. But I
cannot find any documents for that. Any suggestions?
Thanks
zhwqiu Tag: Helpme Driver Canon LP460 for WinXP Tag: 81509
1394 peripheral device identifcation
(1) My driver is similar to 1394diag.sys which installs above Microsoft 1394
stack in Windows 2000/XP. This is unsigned driver. DeviceID for 1394
peripheral device is 1394\VendorName&ModelName. All my peripheral devices use
same VendorName and ModelName. Still when a new peripheral device is
connected,
Windows 2000 and XP comes up with "New Hardware found" wizard. How can I
avoid this? I donâ??t mind if I get warning "unsigned driver", but I canâ??t
install driver again and again. Is driver signing required here to stop
Windows prompting for driver for different EUID?
DeviceId is same for all my 1394 devices and EUID is unique. What is the
meaning of DeviceId if EUID is considered for DeviceId.
(2) Is there any auto install method for driver to 1394 peripheral devices?
I am looking for a way to have unique driver installed once for VendorName
and ModelName.
I know there are some topics in newsgroup. But what I dont understand is
document clearly states driver for device is identified by VendorName and
modelName. Documentation doesnot say driver has to be installed for every
device if driver is unsigned. It only says driver installation will give
"Unsigned driver" warning. So I am not sure if this is happening because
driver is not signed or is it because of some other error/option in my own
installation.
(3) I didnâ??t see any driver signing document for peripheral drivers to 1394,
found only 1394 bus drivers documentation.
Thanks,
Raj Tag: Helpme Driver Canon LP460 for WinXP Tag: 81451
Modem Handles not destroyed
Has anyone had issues with the USB modem handles not being closed when a
device is removed? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81447
Generic Volume Surprise removal
In windows 2k if you have a Mass Storage device and remove it from windows
without stopping the device first you get a surprise removal message.
I am able to suppress the MSD surprise removal but I cannot figure out with
a filter driver how to remove the Generic Volume message
Can anyone help?
Dan Tag: Helpme Driver Canon LP460 for WinXP Tag: 81437
Bluetooth HCI Ioctls
Is there any documentation that can help me find out how to communicate with
the Dell TrueMobile Bluetooth module?
I need to send HCI commands to the Bluetooth module.
Is there a sample in either the SDK or DDK? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81436
WHQL, HCT, WHDC, Windows Logo, Driver signing
WHQL, HCT, WHDC, Windows Logo, designed for windows, Driver signing.....are
these all same. Is windows logo requirement and driver signing are same?
I am not able to find how to get my driver signed. This is 1394 driver for
peripheral device. This driver is on top of Microsoft 1394 stack and is
designed in the lines of 1394diag.sys. All I can find is 1394 bus driver or
1394 hardware. I cant see any mention of 1394 peripheral driver. I dont
understand why 1394 peripheral link is not even refered from 1394 bus driver.
Someone please refer the link.
After Microsft arm twisted me into driver signing with otherwise crappy
driver installation, I dont find proper information on this.
Thanks. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81429
MmMapIoSpace what exactly it does?
MmMapIoSpace
This function maps the specified physical address range to nonpaged
process-dependent address space, providing a directly mapped virtual address
to the device.
Internally what exactly happens behing this API call. How does translation
of address occurs??
suppose i have address dedicated for LCD controller or any other peripheral.
In my driver i call MmMapIoSpace to access the device..
How will the processor know this address is meant for that particular device??
Or how does transaltion of address happens?
Any suggestion is appreciated.
Thanks
Vijay
PIC ,Bangalore Tag: Helpme Driver Canon LP460 for WinXP Tag: 81423
Conflicting errors code with USB Bulk requests
When our USB function driver is used in a loop or for a long transfer of data
(MBs)on a Bulk endpoint, after a short period of time the I/O status (IRP)
returns a failure but the URB status is successful. This is after hundreds of
successful requests. The IRP errors have been STATUS_IO_DEVICE_ERROR or
STATUS_IO_TIMEOUT. The URB status is USBD_STATUS_SUCCESS in either case. In
what conditions would the Windows USB stack return these errors and the URB
be successful?
Second question, when testing for IRP error codes from a
IOCTL_INTERNAL_USB_SUBMIT_URB request, which I/O status should be tested?
IO_STATUS_BLOCK ioStatus = { 0, 0 };
PIRP irp = IoBuildDeviceIoControlRequest(...., &ioStatus);
// Boilerplate code...
ntStatus = IoCallDriver(pdx->lowerDeviceObject, irp);
if (ntStatus == STATUS_PENDING)
// Wait on event
At this point is io.Status.Status == irp->IoStatus.Status ???? If not,
which is the proper method??
Thanks,
SteveB, MCSD
Welch Allyn, Inc. Tag: Helpme Driver Canon LP460 for WinXP Tag: 81400
best source address (TDI)
Hello,
I want to find the best source address for a given destination address
in a TCP TDI filter, and bind the connection endpoint to that source
address. How can I do this in TDI?
Thanks,
Piyush
PS: Is this the right list for this question? Tag: Helpme Driver Canon LP460 for WinXP Tag: 81026