How to DTM Client?
http://www.microsoft.com/whdc/DevTools/WDK/DTM/DTMhowto.mspx
i read the document, and play, but I can't.
Page 15, 3 - After you have installed DTM Client software on your test
clients, the controller automatically detects new test clients and adds them
to the Default Pool
but i does havn't 'test clients' in Default Pool.
i try, clinet windows xp and vista32, but always empty in DTM Studio Default
Pool.
How can client detect?
thank you for reading~ ^^ Tag: spam post deleted Tag: 107501
DIFxApp
I need some help please. I need to install a driver to go along with my
application and I am just not "getting" how to use DIFxAPP to get it done. I
have read the documents but there is so much that I don't understand that I
don't even know where to start.
Can someone point me to a well explained step-by-step approach to adding
this functionality to my VS 2005 installer for my application.
Many thanks,
Sid. Tag: spam post deleted Tag: 107491
I/O target from socket doesn't timeout
Hi,
I have created an I/O target from a socket but when I send an I/O request to
it, it won't timeout.
The socket was created with WSASocket passing WSA_FLAG_OVERLAPPED and I used
setsockopt() to set read/write timeout as below. After setting these options
the I/O target is created using
IWDFFileHandleTargetFactory::CreateFileHandleTarget.
When I send down the request I specify a timeout of 10 seconds, but it won't
work.
Socket creation:
socket =
WSASocket(AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,WSA_FLAG_OVERLAPPED);
Socket configuration:
int iOptVal = 3000;
res = setsockopt(socket, SOL_SOCKET, SO_SNDTIMEO, (char*)&iOptVal,
sizeof(iOptVal));
res = setsockopt(socket, SOL_SOCKET, SO_RCVTIMEO, (char*)&iOptVal,
sizeof(iOptVal));
I/O Target creation:
IWDFFileHandleTargetFactory *fileHandleTargetFactory = NULL;
IWDFIoTarget *target = NULL;
hr = fxDevice->QueryInterface(IID_PPV_ARGS(&fileHandleTargetFactory));
hr = fileHandleTargetFactory->CreateFileHandleTarget(socket, &target);
fileHandleTargetFactory->Release();
Request forwarding:
request->Send(target,WDF_REQUEST_SEND_OPTION_TIMEOUT,-100000000);
Has anyone had this problem? How can I set a timeout for a request sent to
an I/O target created from a socket handle?
Thanks in advance. Tag: spam post deleted Tag: 107489
I need a network miniredirector sample, NulMRx DDK sample doesn't
Hi,
I downloaded WDK 6001.18001. I built NullMRx sample and installed it. I
tried it on WinXP and W2K3..
Unfortunatelly "net use * \\nulsvr\share" does not work. It returns with
"System error 67 has occurred. The network name cannot be found."
In init.c (Line 284) RxStartMinirdr function failed. It returns with
"c000000e" (STATUS_NO_SUCH_DEVICE).
I found this in the MSDN:
"The call to RxStartMinirdr cannot be made from the DriverEntry routine of
the network mini-redirector after a successful call to RxRegisterMinirdr
since some of the start processing requires that the driver initialization be
completed." But the RxStartMinirdr is called from DriverEntry.
Could someone help me to solve this problem or give me a sample which works.
Would be very important.
Thanks,
Misi. Tag: spam post deleted Tag: 107482
Does Windows has built-in or third party USB device driver ?
Hi
Does Microsoft Windows has USB device driver that we can define USB interfaces
and endpoints to let our PC become an USB device ?
Can we add an USB device port , how can I do that request ?
Thank for your teaching. Tag: spam post deleted Tag: 107478
Can we write kernel mode dll or application ?
Hi
Should kernel mode process be driver, can it be a system service like a dll
or app ?
Is there any function which can switch process between user mode and kernel
mode ?
Thank you . Tag: spam post deleted Tag: 107477
_inp( ) and _outp( ) question ..
Hi
Can't we use _inp( ) and _outp( ) in Windows XP, should we use
WRITE_REGISTER_UCHAR and READ_REGISTER_UCHAR and WRITE_PORT_UCHAR and
READ_PORT_UCHAR in kernel mode ?
How can I see the port of a device from Windows Device Manager ? I can see
IO range of some devices, what's the deffirence between IO range and IO port ?
Should I get IO port and register info by some function or IO control , or
all of them should read from documents ?
Thank for your teaching . Tag: spam post deleted Tag: 107476
Does Windows has built-in device driver ?
Hi
Does Microsoft Windows has USB device driver that we can define USB interfaces
and endpoints to let our PC become an USB device ?
Can we add an USB device port , how can I do that request ?
Thank for your teaching. Tag: spam post deleted Tag: 107473
Allocate Continuous memory with specific boundary for DMA
Dear all:
In my case, i need a 64k boundary physical memory for DMA transfer.
But AllocateCommonBuffer dont have a parameter to specify the boundary.
How to achieve this requirement?
(Use MmAllocateContiguousMemorySpecifyCache?)
--
Sincerely Yours, Tag: spam post deleted Tag: 107468
Getting printer specific information stored in GPD file
Hi all,
Basically i have a custom UI and renderer plug-in for a printer driver
using unidrv.dll.
What i need to know in the plug-in are diffrent options set in the GPD file
without reading(parsing) the GPD file.
The only supported methods I found are in IPrintCoreHelper::GetOption which
can give a feature - option return but not the particulars of that option.
And the second method is IPrintCoreUI2::DrvGetDriverSetting which also
given a feature name returns the selected option.
The other close third is IPrintOemDriverUni::DrvGetGPDData which can only
return the value of *OEMCustomData field.
Is there a way to get other field from the GPD ?
RM Tag: spam post deleted Tag: 107467
viewsonic driver n00b question
I need some help - I had to reinstall Win XP on my system and all went
relatively well except for the fact that I am having a driver issue
with my Viewsonic vx922 lcd monitor. I get the XP boot screen and
then the screen goes dark - I swapped in my trusty crt and I see
everything which tells me the issue is tied to the drivers. I went to
viewsonic's site and updated drivers to no avail. Any thoughts on
this since I want to go back to my lcd monitor.
TIA! Tag: spam post deleted Tag: 107466
you watch hot boobs hot video hot picture
you watch hot boobs hot video hot
picture
*********************************************
http://anushkahollywood.blogspot.com/
********************************************** Tag: spam post deleted Tag: 107465
How can know the Serial.sys Driver?
My Driver is Boot start driver,
Start set 0 in Service Registry.
My Driver is Serial Driver.
when was load serial.sys Driver?
how load time serial.sys ?
thank you for reading
best ^^ Tag: spam post deleted Tag: 107463
DirectInput, USB HID filters, and EvtInternalDeviceControl
I'm trying to write a filter for a USB HID device that will
essentially override the device's HID Descriptors with a custom
version, but otherwise function as a normal HID device. I've gotten
the driver to compile, install, and execute but the
EvtInternalDeviceControl function is never called. I've checked
several of the KMDF samples and it appears I'm registering the
function correctly. My EvtDeviceAdd and EvtDeviceD0Entry functions
run, but nothing after. Further, will I need to do anything special in
order to have DirectInput correctly recognize the device with the
corrected descriptor? I'm using the hidkmdf HID minidriver KMDF sample
as the function driver with this as my LowerFilter. I can post
additional code and log data as needed. Below is the pertinent piece
of my DeviceAdd function:
WDF_IO_QUEUE_CONFIG queueConfig;
WDFDEVICE hDevice;
/* SNIP */
status = WdfDeviceCreate(&DeviceInit, &attributes, &hDevice);
if (!NT_SUCCESS(status))
{
DbgPrint("SIXCD: WdfDeviceCreate failed with status code 0x%x
\n", status);
return status;
}
WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&queueConfig,
WdfIoQueueDispatchParallel);
queueConfig.EvtIoInternalDeviceControl =
SixcdEvtInternalDeviceControl;
status = WdfIoQueueCreate(hDevice, &queueConfig,
WDF_NO_OBJECT_ATTRIBUTES, WDF_NO_HANDLE );
if (!NT_SUCCESS (status))
{
DbgPrint("SIXCD: WdfIoQueueCreate failed 0x%x\n", status);
return status;
} Tag: spam post deleted Tag: 107462
DPINST - ReInstal l- scan for hardware change
Hi,
I am using DPINST for install & removal for the driver.
To update a driver first i am removing the driver using dpinst /U inf /D and
for reinstllation I have to do the hardware scan using devcon utility before
installing again, otherwise, DPINST wont be able to find the device, it
returns that no devices are found.
Because for XP OS, with out hardware scan, installation wont be succesful,
it is not the case for vista.
Problem: When i do the hardware scan with devcon, Add hardware wizard comes
up, i want to supress that.
Question: 1) Is there any way to supress this wizard here?
2) using DPINST, before installing, is there any way to scan the device with
out any pop-up coming?
Thanks,
Kota Tag: spam post deleted Tag: 107461
question on class guid
I have filter driver which sits below file system driver.
My LoadOrderGroup is "filter".
These many days I didnot use inf file to install the driver.
I was just adding entry in the registry and copying the driver files to
system directry for my installation application.
Now I am planning to install it thru inf file.
Is class and classguid entry in the inf file mandatory.
wdk doc says that if the LoadOrderGroup is filter the class is not specified.
But when I run the chkinf tool without including class and classguid entry I
get errorrs.
Is it ok if I dont have class entry.
My driver is a mirroring driver.
Thanks in advance
The wdk doc says that Tag: spam post deleted Tag: 107460
Must USB Iso transfer use selectInterface ?
1. If there is only 1 interface and 1 alternative setting in
descripter of the device, must select interface be sent ? Since for
bulk, it is not necessary, and the pipe can be directly used after get
pipe handle from set configure.
2. If select interface have to be sent. Must there be 2 alternative
settings ? Tag: spam post deleted Tag: 107459
XcvData broken on Vista
I have a print driver/port monitor pair that use XcvData and XcvDataPort
to communicate. When the printer is being used as a network printer and
connected to by a client, the driver on the client calls XcvData with a
custom string in pszDataName. My XcvDataPort function in the port
monitor recognizes this string and responds with the requested data. It's
very simple, fully supported according to the documentation, and works
flawlessly between XP boxes.
But throw Vista into the mix and it's completely broken. If the server is
XP and the client is Vista, XcvData returns error 2 (file not found). The
port monitor on the server is *not* called.
Conversely, if the server is Vista and the client is XP, XcvData returns
error 122 (insufficient buffer). And again, the port monitor on the
server is not called. However, despite the fact that XcvDataPort was
never called, XcvData gives me back error 2 as XcvDataPort's return code.
The actual printing works flawlessly in both cases, so I know it's not a
fundamental permissions or network issue. It's purely a problem with
XcvData.
I strongly suspect it's a security issue since most things Vista are, but
even if I turn off the firewall, UAC, print as admin, set permissions on
the printer to full control for everyone, etc, I get the same results.
It's as if Vista is simply refusing to allow XcvData to communicate with
the port monitor.
Any clues? Simplified code follows to give you an idea....
On the client I do this:
// open the port on the print server
HANDLE hServer;
if (!OpenPrinterW(L"MyServer\\,XcvPort DIRPS:", &hServer, NULL))
return false;
// request the data
char *pBuff = new char[dataSize];
if (!XcvData(hServer, L"GetConfigData", 0, 0, (PBYTE)pBuff, dataSize, &dataSize, &status) || status != ERROR_SUCCESS)
return false;
On the server, the port monitor does this:
DWORD WINAPI XcvDataPort(HANDLE hXcv,
LPCWSTR pszDataName,
PBYTE pInputData,
DWORD cbInputData,
PBYTE pOutputData,
DWORD cbOutputData,
PDWORD pcbOutputNeeded)
{
if (pszDataName && !wcscmp(pszDataName, L"GetConfigData"))
{
*pcbOutputNeeded = dataSize;
if (cbOutputData < dataSize)
return ERROR_INSUFFICIENT_BUFFER;
*pOutputData = myData;
return ERROR_SUCCESS;
}
return ERROR_SUCCESS;
} Tag: spam post deleted Tag: 107448
Microsoft RNDIS driver failed to handle multi config descriptors
Does Microsoft Window (XP Host) RNDIS driver support multiple configuration
descriptors? We changed the WinCE RNDIS driver code to provide two
configuration
descriptors to the host.
When we pass the 2 configuration descriptors per the USB specification the
host(XP) accepts them by returning a "SetConfiguration" message with a valid
configurationValue, and then subsequently dies with an error 10. Tag: spam post deleted Tag: 107446
Troubleshooting Sleep Issues
Please, Does anyone know how to determine what application, service, or
driver is resetting the idle timer on an XP system, thus causing the machine
to never enter a sleep state on it's own?
Any Ideas would be great.
Thx a bunch.
--
Thx.
Y_not Tag: spam post deleted Tag: 107442
How do get to RS232 COM Port List?
My Driver Code is Boot start RS232 Serial Driver. [Window NT Driver on
Windows XP]
I don't know.
How can get actuality COM port list?
If actuality my comport have COM1 and COM3,
I must open only COM1 and COM3.
but My code is try to open the COM1 to COMX.
because, this method is occur a Blue Screen, Sometimes.
How can get actuality COM port list in NT Style Driver (base Windows XP) ?
Thank you for reading~
best regards Tag: spam post deleted Tag: 107438
Echo sample driver is not loaded windows XP
Hello All,
The Echo sample driver is not loaded in the windows XP system. i am
using the WDK 6000 driver development kit. the Kmdf library version is
1.5.
Regards
Sulabh Tag: spam post deleted Tag: 107435
KMDF sample driver not loaded in windows XP - WDK 600
Hello All,
Hello All,
I compiled the echo sample driver which is avilable in the WDK 6000
driver delopment kit. this is a KMDF based driver, i give proper
libray version which is mentioned the echo.inf file.
I tryied to install this driver into the windows XP professioanl .
The
Windows XP operating system is not loaded this driver ,it is
returning
the error code 37.
Note: I am not able to load any kmdf sample driver Windows XP
professional.
Kindly help me as soon as possible it is very urgent.
Thanks in advance.
Regards
Sulabh Tag: spam post deleted Tag: 107434
[KMDF Echo Sample Driver not loaded in Windows XP]
Hello All,
I compiled the echo sample driver which is avilable in the WDK 6000
driver delopment kit. this is a KMDF based driver, i give proper
libray version which is mentioned the echo.inf file.
I tryied to install this driver into the windows XP professioanl . The
Windows XP operating system is not loaded this driver ,it is returning
the error code 37.
Note: I am not able to load any kmdf sample driver Windows XP
professional.
Kindly help me as soon as possible it is very urgent.
Thanks in advance.
Regards
Sulabh Tag: spam post deleted Tag: 107433
Checked build driver with free build OS....
Hi,
I know, to help debugging, its required to have the windows checked
build and with checked build driver (driver under development). But what
happens if checked build driver is loaded and used with free build os ?
(XP SP2).
As far as I know, the checked build driver
1. Does not have optimization enabled
2. Lots of DbgPrint
3. The size of the binary is huge (because of symbols and etc).
3. The driver will be slow.
Are there anything more to add to the above list ? If I manage to remove
all the prints and if the driver is meeting the performance criterion,
is it advisable to deploy the checked build driver with free build OS ?
Regards
Esha Tag: spam post deleted Tag: 107430
NDIS encryption
hi, i try to crypt the buffer but it fails with, irq_less_or_equal OR with
bad_pool_handel
thanks for some ideas or a little help
here is the code:
NdisAllocatePacket(&Status,
&MyPacket,
pAdapt->SendPacketPoolHandle);
if (Status == NDIS_STATUS_SUCCESS)
{
NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;
ULONG ulBfrCnt,
ulTotPktLen,
ulCurrBfr,
ulAmtToMove;
PUCHAR pCurrBfr;
ULONG TotalPacketLength;
PSEND_RSVD SendRsvd;
PVOID pBuf;
PNDIS_BUFFER pNdisBfr;
HighestAcceptableAddress.LowPart = -1;
HighestAcceptableAddress.HighPart = -1;
NdisQueryPacket(Packet, // Get information from
packet descriptor.
NULL,
NULL,
&pNdisBfr, // Output variable for
address of first buffer descriptor.
&ulTotPktLen // Output variable for
number of bytes in packet payload.
);
Status =
NdisAllocateMemory(&pBuf,ulTotPktLen,0,HighestAcceptableAddress);
GetPktPayload(Packet, // Copy payload
pBuf, // to area.
szPayloadCopy, // Amount of space in area.
&ulOrigPayload // Return number of bytes in packet.
);
NdisAllocateBuffer( &Status, &newbuffer, pAdapt->SendPacketPoolHandle,
pBuf, ulOrigPayload );
Encrypt(pBuf,ulOrigPayload);
if(Status == NDIS_STATUS_FAILURE)
{
NdisFreeMemory(pBuf,
ulOrigPayload, //Maybe add a checksum length
0);
Status = NDIS_STATUS_FAILURE;
DBGPRINT(("exit NDIS_STATUS_FAILURE 9\n"));
break;
}
SendRsvd = (PSEND_RSVD)(MyPacket->ProtocolReserved);
SendRsvd->OriginalPkt = Packet;
NdisGetPacketFlags(MyPacket) = NdisGetPacketFlags(Packet);
NdisChainBufferAtFront(MyPacket,newbuffer);
=======================================
void Encrypt(PVOID pData,ULONG uDataLen) {
NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress;
ULONG i;
int b;
PVOID tmp;
PVOID cur;
NDIS_STATUS Status;
char * tmep;
HighestAcceptableAddress.LowPart = -1;
HighestAcceptableAddress.HighPart = -1;
Status = NdisAllocateMemory(&tmep,uDataLen,0,HighestAcceptableAddress);
if (Status != NDIS_STATUS_SUCCESS) {
NdisFreeMemory(tmep,
uDataLen, //Maybe add a checksum length
0);
return; }
Reset();
tmep = (char *) ExAllocatePool(NonPagedPool ,uDataLen);
for (i = 0 ; i<uDataLen; i ++) {
((unsigned char *)cur) = ((unsigned char *)pData) +i;
*(tmep+i) = ((int)cur) ^ 5;
}
i++;
*(tmep+i) = 0;
NdisMoveMemory(pData,tmep,uDataLen);
NdisFreeMemory(cur,
uDataLen, //Maybe add a checksum length
0);
}
i hope my many questions can help other developers :D Tag: spam post deleted Tag: 107428
Port Monitor: referencing external libraries in sample code
Hi,
I am new to Driver development. I am implementing the Port monitor for
our printer driver. Basically I am migrating from a previous Port Monitor(
visual studio project) which implements the MONITOR structure to the recent
MONITOR2 structure using the DDK environment. As can be seen, there is some
similarity in the MONITOR2 and MONITOR structure and some of the existing
functionality can be reused. So I planned to export the functions required by
MONITOR2 from the current port monitor library and use it in the DDK sample
port monitor(ddklocalmon).
For this I implemented the header file for the existing Port monitor and
compiled it as a static library. Added the function names to the .DEF file.
I included this library in the TARGETLIBS section of the Sources file in
localmon directory. Also added the path to the header file in the INCLUDES
section.
However when I added a call to the logerror() function in the imported
library, I get the following error on linking
Linking Executable - objchk_wxp_x86\i386\ddklocalmon.dll
errors in directory d:\doccreator\actino\p4root\jaws\niknak\win\localmon
d:\doccreator\actino\p4root\jaws\niknak\win\localmon\localmon.obj : error
LNK2019: unresolved external symbol _logerror@0 referenced in function
_LcmStartDocPort@20
d:\doccreator\actino\p4root\jaws\niknak\win\localmon\objchk_wxp_x86\i386\ddklocalmon.dll : error LNK1120: 1 unresolved externals
Questions:
1] Can someone please let me know what could have gone wrong with this
implementation.?
2] Is adding a reference to a Visual studio library to the DDK project
possible?
3] Have I added the library and header file to the correct sections in the
Sources file?
Please let me know if you need more explaination.
thanks
Mangesh Tag: spam post deleted Tag: 107425
Getting SID of process owner
Hi,
Getting SID of user account under which a process is running can be easily
done by user-mode code via WIN32 APIs: OpenProcess(), OpenProcessToken(),
GetTokenInformation(TokenUser).
But in device driver, if PID of a process is known, how difficult is it to
get owner SID?
Thanks,
Boris Tag: spam post deleted Tag: 107424
Errorcode c0000005 ndis passthru sample
hi,
iam changing the buffer with a original copy of it and always get the error
c0000005
does anyone have an idea?
i have googled a little bit but didnt find any answers
greetz
FAULTING_IP:
passthru+b7b
f7967b7b 833a00 cmp dword ptr [edx],0
EXCEPTION_RECORD: f7a05a48 -- (.exr 0xfffffffff7a05a48)
ExceptionAddress: f7967b7b (passthru+0x00000b7b)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 0000007f
Attempt to read from address 0000007f Tag: spam post deleted Tag: 107417
Can more than 3 packets be transfered per microframe in iso?
For ISO transfer, we need to send 4 of 1024 per microframe for speed
needed. The protocol says that bit12-11 define the number of packets
per microframe. And it can only be as many as =92b10 for 3 packets per
microframe.
However, in USB 2.0 spec Table 5-5 =91High-speed Isochronous Transaction
Limits=92, it clearly shows that packets per microframe can be more than
3. (e.g., for 1024 bytes packet, it can be 7 ; for 64bytes packet
there can even be 73 packets per microframe).
Thanks Tag: spam post deleted Tag: 107416
RS232 Boot Start Driver
My Driver is BootStart Driver. RS232
When Windows Start then Driver load, then try Open COM PORT.
for instance,[ just algoritm ]
while(1)
{
handle = CreateFile("COM1"....);
if(handle == ERROR)
continue;
}
next work;
---
but this algoritm is occur Blue screen, sometimes.
I want,
first question
how can open to COM port at time?
(can't open com port at boot started. but my code is try open, always)
sencond question
How do know enumeration com port?
(if exist com2, com3, but my code is try open 1~N. it's bad.. i will com2,
com3 open)
sorry my English is bad :-)
thank you for reading~
best Tag: spam post deleted Tag: 107415
Automate a test that has included reboots
Suppose we want to add a test to a DTM suite that has one or more reboots.
Outside of DTM, the test add's itself back to the registry using the RunOnce
key to continue after reboot. When using DTM, what is the correct setup
(i.e. does DTM restart the test application following reboot)? Currently,
what I'm seeing is that if the test issues a reboot, DTM marks it as a
Control-C failure.
Thanks... Tag: spam post deleted Tag: 107414
Driver Installation in Vista using DpInst 2.01
Dear All,
I have a package which installs device driver on Vista for CardMan SmartCard
reader. Installation is fine if the hardware is pluged-in during installation.
The problem occurs, if the package is installed with out the hardware
pluged-in. After instalallation when the hardware is pluged-in, New Hardware
Found window pops up.
Is their a solution for this?
Also, Is their a method whein we can exit the installation if hardware is
not connected?
Kind Regards,
Chetan G S Tag: spam post deleted Tag: 107413
The origin of the popup messege when you plug a USB device?
Hi all,
I would like to use WinUsb with a Personal Health Care USB class device.
What would be the name of the device on the windows pop-up that appears when
you plug a new USB device?
What is the origin of that device name?
A registry entry? The device itself?
Thanks,
Assaf Tag: spam post deleted Tag: 107404
Does WinUsb would work with a Personal Health Care device?
Hi all,
I would like to use WinUsb (instead of writing a custom UWDF driver).
My device is of the class "Personal Health Care" (USB class - 0Fh),
Will it work with WinUsb?
Thanks,
Assaf Tag: spam post deleted Tag: 107403
Regarding "bTemporalCompression" in avshws of DDK
Hello, I am developing a PCI capture driver, and I use "avshws" as
sample to
develp the driver.
I can capture AVI with H.264 codec by AMCAP, and the avi file can play
well.
My problem is as following:
I would like to set bTemporalCompression(in KS_DATARANGE_VIDEO) to be
TRUE.
Then, the captured AVI frames will be not all marked as key frame.
I connect capture pin to dump filter. When I trace in avshws,
bTemporalCompression is really true. But when I trace into dump
filter, it
shows bTemporalCompression as FALSE.
In addition, in "IntersectHandler" function, the sample code doesn't
copy
"bTemporalCompression" and "bFixedSizeSamples" into
"Data"(PKS_DATAFORMAT_VIDEOINFOHEADER).
If I write following code:
FormatVideoInfoHeader->DataFormat.SampleSize = 0;
Then, I can see "bFixedSizeSamples" in "Dump" filter is updated to
FALSE.
Therefore, should I copy "bTemporalCompression" into somewhere to make
the flag enable?
Can somebody kindly help me to solve this problem?
My data range defines as following:
KS_DATARANGE_VIDEO
FormatH264_Capture = {
//
// KSDATARANGE
//
{
sizeof (KS_DATARANGE_VIDEO), // FormatSize
0, // Flags
DMAX_X * DMAX_Y * 2, // SampleSize
0, // Reserved
STATICGUIDOF (KSDATAFORMAT_TYPE_VIDEO), // aka.
MEDIATYPE_Video
0x34363248, 0x0000, 0x0010, 0x80, 0x00,
0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71, //aka.
MEDIASUBTYPE_YUY2,
STATICGUIDOF (KSDATAFORMAT_SPECIFIER_VIDEOINFO) //
FORMAT_VideoInfo
},
FALSE, // BOOL, bFixedSizeSamples (all samples same
size?)
TRUE, // BOOL, bTemporalCompression (all I frames?)
0, // Reserved (was StreamDescriptionFlags)
0, // Reserved (was MemoryAllocationFlags
// (KS_VIDEO_ALLOC_*))
//
// _KS_VIDEO_STREAM_CONFIG_CAPS
//
{
STATICGUIDOF( KSDATAFORMAT_SPECIFIER_VIDEOINFO ), // GUID
KS_AnalogVideo_None, //
AnalogVideoStandard
DMAX_X, DMAX_Y, // InputSize, (the inherent size of the
incoming signal
D_X,D_Y, // MinCroppingSize, smallest rcSrc cropping
rect
DMAX_X, DMAX_Y, // MaxCroppingSize, largest rcSrc cropping
rect allowed
8, // CropGranularityX, granularity of cropping
size
1, // CropGranularityY
8, // CropAlignX, alignment of cropping rect
1, // CropAlignY;
D_X, D_Y, // MinOutputSize, smallest bitmap stream can
produce
DMAX_X, DMAX_Y, // MaxOutputSize, largest bitmap stream can
produce
8, // OutputGranularityX, granularity of output
bitmap size
1, // OutputGranularityY;
0, // StretchTapsX (0 no stretch, 1 pix dup, 2
interp...)
0, // StretchTapsY
0, // ShrinkTapsX
0, // ShrinkTapsY
1428571, // MinFrameInterval, 100 nS units >>7 frames
per second
640000000, // MaxFrameInterval, 100 nS units
8 * 2 * 30 * D_X * D_Y, // MinBitsPerSecond;
8 * 2 * 30 * DMAX_X * DMAX_Y, // MaxBitsPerSecond;
},
//
// KS_VIDEOINFOHEADER (default format)
//
{
0, 0, D_X, D_Y, // RECT rcSource;
0, 0, 0, 0, // RECT rcTarget;
DMAX_X * DMAX_Y * 2 * 30, // DWORD dwBitRate;
0L, // DWORD dwBitErrorRate;
1428571, // REFERENCE_TIME
AvgTimePerFrame;
sizeof (KS_BITMAPINFOHEADER), // DWORD biSize;
DMAX_X, // LONG biWidth;
DMAX_Y, // LONG biHeight;
1, // WORD biPlanes;
16, // WORD biBitCount;
FOURCC_H264, // DWORD biCompression;
DMAX_X * DMAX_Y * 2, // DWORD biSizeImage;
0, // LONG biXPelsPerMeter;
0, // LONG biYPelsPerMeter;
0, // DWORD biClrUsed;
0 // DWORD biClrImportant;
}
}
My IntersectHandler is as following:
NTSTATUS
CCapturePin::
IntersectHandler (
IN PKSFILTER Filter,
IN PIRP Irp,
IN PKSP_PIN PinInstance,
IN PKSDATARANGE CallerDataRange,
IN PKSDATARANGE DescriptorDataRange,
IN ULONG BufferSize,
OUT PVOID Data OPTIONAL,
OUT PULONG DataSize
)
{
PAGED_CODE();
const GUID VideoInfoSpecifier =
{STATICGUIDOF(KSDATAFORMAT_SPECIFIER_VIDEOINFO)};
ASSERT(Filter);
ASSERT(Irp);
ASSERT(PinInstance);
ASSERT(CallerDataRange);
ASSERT(DescriptorDataRange);
ASSERT(DataSize);
ULONG DataFormatSize;
//
// Specifier FORMAT_VideoInfo for VIDEOINFOHEADER
//
if (IsEqualGUID(CallerDataRange->Specifier, VideoInfoSpecifier) &&
CallerDataRange -> FormatSize >= sizeof (KS_DATARANGE_VIDEO))
{
PKS_DATARANGE_VIDEO callerDataRange =
reinterpret_cast <PKS_DATARANGE_VIDEO> (CallerDataRange);
PKS_DATARANGE_VIDEO descriptorDataRange =
reinterpret_cast <PKS_DATARANGE_VIDEO>
(DescriptorDataRange);
PKS_DATAFORMAT_VIDEOINFOHEADER FormatVideoInfoHeader;
//
// Check that the other fields match
//
if ((callerDataRange->bFixedSizeSamples !=
descriptorDataRange->bFixedSizeSamples) ||
(callerDataRange->bTemporalCompression !=
descriptorDataRange->bTemporalCompression) ||
(callerDataRange->StreamDescriptionFlags !=
descriptorDataRange->StreamDescriptionFlags) ||
(callerDataRange->MemoryAllocationFlags !=
descriptorDataRange->MemoryAllocationFlags) ||
(RtlCompareMemory (&callerDataRange->ConfigCaps,
&descriptorDataRange->ConfigCaps,
sizeof (KS_VIDEO_STREAM_CONFIG_CAPS)) !=
sizeof (KS_VIDEO_STREAM_CONFIG_CAPS)))
{
return STATUS_NO_MATCH;
}
//
// KS_SIZE_VIDEOHEADER() below is relying on bmiHeader.biSize
from
// the caller's data range. This **MUST** be validated; the
// extended bmiHeader size (biSize) must not extend past the
end
// of the range buffer. Possible arithmetic overflow is also
// checked for.
//
{
ULONG VideoHeaderSize = KS_SIZE_VIDEOHEADER (
&callerDataRange->VideoInfoHeader
);
ULONG DataRangeSize =
FIELD_OFFSET (KS_DATARANGE_VIDEO, VideoInfoHeader) +
VideoHeaderSize;
//
// Check that biSize does not extend past the buffer.
The
// first two checks are for arithmetic overflow on the
// operations to compute the alleged size. (On unsigned
// math, a+b < a iff an arithmetic overflow occurred).
//
if (
VideoHeaderSize < callerDataRange->
VideoInfoHeader.bmiHeader.biSize ||
DataRangeSize < VideoHeaderSize ||
DataRangeSize > callerDataRange ->
DataRange.FormatSize
) {
return STATUS_INVALID_PARAMETER;
}
}
DataFormatSize =
sizeof (KSDATAFORMAT) +
KS_SIZE_VIDEOHEADER (&callerDataRange->VideoInfoHeader);
//
// If the passed buffer size is 0, it indicates that this is a
size
// only query. Return the size of the intersecting data
format and
// pass back STATUS_BUFFER_OVERFLOW.
//
if (BufferSize == 0) {
*DataSize = DataFormatSize;
return STATUS_BUFFER_OVERFLOW;
}
//
// Verify that the provided structure is large enough to
// accept the result.
//
if (BufferSize < DataFormatSize)
{
return STATUS_BUFFER_TOO_SMALL;
}
//
// Copy over the KSDATAFORMAT, followed by the actual
VideoInfoHeader
//
*DataSize = DataFormatSize;
FormatVideoInfoHeader =
PKS_DATAFORMAT_VIDEOINFOHEADER( Data );
//
// Copy over the KSDATAFORMAT. This is precisely the same as
the
// KSDATARANGE (it's just the GUIDs, etc... not the format
information
// following any data format.
//
RtlCopyMemory (
&FormatVideoInfoHeader->DataFormat,
DescriptorDataRange,
sizeof (KSDATAFORMAT));
FormatVideoInfoHeader->DataFormat.FormatSize = DataFormatSize;
//
// Copy over the callers requested VIDEOINFOHEADER
//
RtlCopyMemory (
&FormatVideoInfoHeader->VideoInfoHeader,
&callerDataRange->VideoInfoHeader,
KS_SIZE_VIDEOHEADER (&callerDataRange->VideoInfoHeader)
);
//
// Calculate biSizeImage for this request, and put the result
in both
// the biSizeImage field of the bmiHeader AND in the
SampleSize field
// of the DataFormat.
//
// Note that for compressed sizes, this calculation will
probably not
// be just width * height * bitdepth
//
FormatVideoInfoHeader->VideoInfoHeader.bmiHeader.biSizeImage =
KS_DIBSIZE (FormatVideoInfoHeader-
>VideoInfoHeader.bmiHeader);
FormatVideoInfoHeader->DataFormat.SampleSize = 0;
//
// REVIEW - Perform other validation such as cropping and
scaling checks
//
return STATUS_SUCCESS;
} // End of VIDEOINFOHEADER specifier
return STATUS_NO_MATCH;
}
Thanks!
Gordon Tag: spam post deleted Tag: 107401
Frame information of AVStream driver
Hello, I am developing a PCI capture driver, and I use "avshws" as
sample to
develp the driver.
I would like to transfer some frame informatiion from "avshws" driver
to user
mode filter(e.g. dump filter).
In "avssamp" sample, there are following codes in
"CVideoCapturePin::CaptureFrame:
FrameInfo -> ExtendedHeaderSize = sizeof (KS_FRAME_INFO);
FrameInfo -> PictureNumber = (LONGLONG)m_FrameNumber;
FrameInfo -> DropCount = (LONGLONG)m_DroppedFrames;
Could I get "FrameInfo -> PictureNumber" in user mode filter? Further
more,
could I get whole "FrameInfo" structure in user mode filter?
By the way, if I need to transfer user defined information, how should
I do?
Could I define my FrameInfo structure, and let user mode filter get
the
structure?
Thanks!
Gordon Tag: spam post deleted Tag: 107400
DevCon to install passthru sample?
hi, is there a way to install the passthru sample with devcon or is there
any whay to get the error codes (i didnt find the sources of devcon)
when i try to install with "devcon -r install c:\test\netsf_m.inf
ms_passthru" i always get an "devcon failed", is there no way to get some
error informations y it cant be installed?
if i look on the hwids list i see the passthru sample installed, and i can
uninstall it
thx for any help or some informations Tag: spam post deleted Tag: 107396
Is is possible to load audio device with CreateFile() function in
Hi~
I am going to check SPDIF Line-out endpoint.
I used in winddk. (=93C:\WinDDK\6001.18001\src\audio\ac97=94)
That example is a sample of window control panel.
I changed into application level.
//
BOOL FindSupportingSPDIFOutAudioDevice (PSP_PROPSHEETPAGE_REQUEST
pspRequest,
PSP_DEVINFO_DATA
DeviceInfoData)
{
TCHAR szServiceName[128];
//
// Prepare the pspRequest structure...
//
pspRequest->cbSize =3D sizeof (SP_PROPSHEETPAGE_REQUEST);
pspRequest->DeviceInfoData =3D DeviceInfoData;
pspRequest->PageRequested =3D SPPSR_ENUM_ADV_DEVICE_PROPERTIES;
// ...and the DeviceInfoData structure.
DeviceInfoData->cbSize =3D sizeof (SP_DEVINFO_DATA);
// Create a list of devices with Topology interface.
pspRequest->DeviceInfoSet =3D SetupDiGetClassDevs
(&KSCATEGORY_TOPOLOGY,
NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
// None found?
if (pspRequest->DeviceInfoSet =3D=3D INVALID_HANDLE_VALUE)
{
dbgError (TEXT("Test: SetupDiGetClassDevs: "));
return FALSE;
}
//
// Go through the list of all devices found.
//
int nIndex =3D 0;
while (SetupDiEnumDeviceInfo (pspRequest->DeviceInfoSet,
nIndex, DeviceInfoData))
{
//
// Get the service name for that device.
//
if (!SetupDiGetDeviceRegistryProperty (pspRequest-
>DeviceInfoSet, DeviceInfoData,
SPDRP_SERVICE, NULL, (PBYTE)szServiceName,
sizeof (szServiceName), NULL))
{
dbgError (TEXT("Test:
SetupDiGetDeviceRegistryProperty: "));
SetupDiDestroyDeviceInfoList (pspRequest-
>DeviceInfoSet);
return FALSE;
}
DWORD lcid =3D MAKELCID(MAKELANGID(LANG_ENGLISH,
SUBLANG_ENGLISH_US), SORT_DEFAULT);
TRACE(_T("servicename : %s\n"), szServiceName); //
STHDA ctaud2k
//STHDA ; sigmatel
//ctaud2k : x-fi
if (CompareString (lcid, NORM_IGNORECASE,
szServiceName,
-1, TEXT("ctaud2k"), -1) =3D=3D CSTR_EQUAL)
// I have =93SB X-Fi Aduio=94 sound card with SPDIF-out. It called
=93ctaud2k=94 service name.
{
//
// We found it! The information is already
stored, just return.
// Note that we have the device list still open
- we have to destroy
// the list later.
//
return TRUE;
}
// Take the next in the list.
nIndex++;
}
//
// We did not find the service.
//
SetupDiDestroyDeviceInfoList (pspRequest->DeviceInfoSet);
return FALSE;
}
BOOL GetDLLInfo (HMODULE *phDLL, LPFNADDPROPSHEETPAGES
*pAC97PropPageProvider)
{
TCHAR szLoadPath[MAX_PATH];
TCHAR szWinSysPath[MAX_PATH];
GetSystemDirectory(szWinSysPath, MAX_PATH);
if(FAILED(StringCbPrintf(szLoadPath, MAX_PATH * sizeof(TCHAR),
TEXT("%s\\%s"), szWinSysPath, TEXT("ac97prop.dll"))))
{
dbgError (TEXT("DisplayPropertySheet: Can't build DLL
path\n"));
return FALSE;
}
// Load the library.
*phDLL =3D LoadLibrary (szLoadPath);
if (!*phDLL)
{
dbgError (TEXT("DisplayPropertySheet: LoadLibrary"));
return FALSE;
}
// Get the address of the function.
*pAC97PropPageProvider =3D (LPFNADDPROPSHEETPAGES)GetProcAddress
(*phDLL,
"AC97PropPageProvider");
if (!*pAC97PropPageProvider)
{
dbgError (TEXT("DisplayPropertySheet:
GetProcAddress"));
FreeLibrary (*phDLL);
return FALSE;
}
return TRUE;
}
void GetSoundInfo(HWND hWnd)
{
SP_PROPSHEETPAGE_REQUEST pspRequest; // structure
passed to ac97prop
SP_DEVINFO_DATA DeviceInfoData; // pspRequest
points to it.
HMODULE hDLL; // Module
handle of library
LPFNADDPROPSHEETPAGES AC97PropPageProvider; // function
to be called.
PROPSHEETHEADER psh;
if (!FindSupportingSPDIFOutAudioDevice(&pspRequest,
&DeviceInfoData))
{
MessageBox (hWnd, TEXT("can't find supporint SPDIF-OUT
audio device"),
AppletName, MB_ICONSTOP | MB_OK);
return;
}
// Load the library and get the function pointer.
if (!GetDLLInfo (&hDLL, &AC97PropPageProvider))
{
MessageBox (hWnd, TEXT("The property page DLL could not
load."),
AppletName, MB_ICONSTOP | MB_OK);
SetupDiDestroyDeviceInfoList
(pspRequest.DeviceInfoSet);
return;
}
..
=2E.
}
// AC97PropPageProvider in ac97prop.DLL
BOOL APIENTRY AC97PropPageProvider
(
PSP_PROPSHEETPAGE_REQUEST pPropPageRequest,
LPFNADDPROPSHEETPAGE fAddFunc,
LPARAM lParam
)
{
PSP_DEVICE_INTERFACE_DETAIL_DATA pDeviceInterfaceDetailData;
tAC97Features *pAC97Features;
PROPSHEETPAGE PropSheetPage;
HPROPSHEETPAGE hPropSheetPage;
// Check page requested
if (pPropPageRequest->PageRequested !=3D
SPPSR_ENUM_ADV_DEVICE_PROPERTIES)
{
return FALSE;
}
// Check device info set and data
if ((!pPropPageRequest->DeviceInfoSet) || (!pPropPageRequest-
>DeviceInfoData))
{
return FALSE;
}
// Allocate the memory for the AC97 features.
pAC97Features =3D (tAC97Features *) LocalAlloc (LPTR, sizeof
(tAC97Features));
if (!pAC97Features)
{
dbgError (TEXT("AC97PropPageProvider: LocalAlloc: "));
return FALSE;
}
// Get the device interface detail which return a path to the
device
// driver that we need to open the device.
if (!GetDeviceInterfaceDetail (pPropPageRequest,
&pDeviceInterfaceDetailData))
{
LocalFree (pAC97Features);
return FALSE;
}
// Get the AC97 features through the private property call.
if (!GetAC97Features (pDeviceInterfaceDetailData, pAC97Features))
{
LocalFree (pDeviceInterfaceDetailData);
LocalFree (pAC97Features);
return FALSE;
}
#ifdef PROPERTY_SHOW_SET
// Show how we would set something in the driver
AC97ShowSet (pDeviceInterfaceDetailData);
#endif
// We don't need the device interface details any more, get rid of
it now!
LocalFree (pDeviceInterfaceDetailData);
// initialize the property page
PropSheetPage.dwSize =3D sizeof(PROPSHEETPAGE);
PropSheetPage.dwFlags =3D 0;
PropSheetPage.hInstance =3D ghInstance;
PropSheetPage.pszTemplate =3D MAKEINTRESOURCE(DLG_AC97FEATURES);
PropSheetPage.pfnDlgProc =3D AC97DlgProc;
PropSheetPage.lParam =3D (LPARAM)pAC97Features;
PropSheetPage.pfnCallback =3D NULL;
// create the page and get back a handle
hPropSheetPage =3D CreatePropertySheetPage (&PropSheetPage);
if (!hPropSheetPage)
{
LocalFree (pAC97Features);
return FALSE;
}
// add the property page
if (!(*fAddFunc)(hPropSheetPage, lParam))
{
DestroyPropertySheetPage (hPropSheetPage);
LocalFree (pAC97Features);
return FALSE;
}
return TRUE;
}
BOOL GetAC97Features (PSP_DEVICE_INTERFACE_DETAIL_DATA
pDeviceInterfaceDetailData,
tAC97Features *pAC97Features)
{
HANDLE hTopology;
KSPROPERTY AC97Property;
ULONG ulBytesReturned;
BOOL fSuccess;
// Open the topology filter.
hTopology =3D CreateFile (pDeviceInterfaceDetailData->DevicePath,
GENERIC_READ, FILE_SHARE_READ,// |
FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, 0, NULL);
// Check for error.
if (hTopology =3D=3D INVALID_HANDLE_VALUE)
{
dbgError (TEXT("GetAC97Features: CreateFile: "));
//
//
// have error : can=92t find the file specified.
//
//
//
//
return FALSE;
}
// Fill the KSPROPERTY structure.
AC97Property.Set =3D KSPROPSETID_Private;
AC97Property.Flags =3D KSPROPERTY_TYPE_GET;
AC97Property.Id =3D KSPROPERTY_AC97_FEATURES;
fSuccess =3D DeviceIoControl (hTopology, IOCTL_KS_PROPERTY,
&AC97Property, sizeof (AC97Property),
pAC97Features, sizeof (tAC97Features),
&ulBytesReturned, NULL);
// We don't need the handle anymore.
CloseHandle (hTopology);
// Check for error.
if (!fSuccess)
{
dbgError (TEXT("GetAC97Features: DeviceIoControl: "));
return FALSE;
}
return TRUE;
}
pDeviceInterfaceDetailData->DevicePath values is \\\\?\
\pci#ven_1102&dev_0005&subsys_00311102&rev_00#4&35fae160&0&00f0#{dda54a40-1e=
4c-11d1-
a050-405705c10000}\\spdifouttopo.
then we got some error
: =93GetAC97Features: CreateFile: can=92t find the file specified.=94
also,
I checked winobj utility in sysinternals.com.
It=92s shows follow :
Name :
pci#ven_1102&dev_0005&subsys_00311102&rev_00#4&35fae160&0&00f0#{dda54a40-1e4=
c-11d1-
a050-405705c10000}
Type : SymbolicLink
SymLink : \Device\NTPNP_PCI0022
tried to stuff...
hTopology =3D CreateFile (TEXT("\\\\?\
\pci#ven_1102&dev_0005&subsys_00311102&rev_00#4&35fae160&0&00f0#{dda54a40-1e=
4c-11d1-
a050-405705c10000}\\Topology", ......
thease case, we got success. but, can't control DeviceIoControl.
which do I use symbolink name?
Thanks.
Eric Ahn Tag: spam post deleted Tag: 107393
Printer Drivers
Hi all,
where should i look for begin developing printer drivers? is UMDF
supports for writing printer drivers? Tag: spam post deleted Tag: 107392
Mirror display driver in the multimon configuration (negative origin)
I'm trying to enable support of the multimonitor configurations for my
mirror driver. I had modified mirror driver loading code to bind it to
the properly initialized DEVMODE (dmPosition etc), so mirror driver
binds to the entire virtual screen.
Firstly, i had configured my test system with dual monitor in this
way:
|0,0----------------1024,0--------------|
| M1 (primary) | M2 |
| | |
|0,768------------1024,768-----------|
In this configuration all works fine - all gdi calls correctly
mirrored to the mirror driver back buffer.
Next, i tried to move M2 just before M1, so virtual display origin in
X becomes negative:
|(-1024,0)--------0,0------------------|
| M2 | M1 (primary) |
| | |
|(-1024,768)----0,768---------------|
At this point most of the mirrored gdi calls draws in the back surface
incorrectly - as if there is no negative origin, how i can feel it.
I tried to debug this - parameters to the DrvBitBlt/DrvCopyBits seems
to be quite correct (all back surf coordinates mapped to the (0,0)
origin). And more - blits from the back surf to the back surf (for
example, when moving window) are not performed correctly. But some gdi
calls, that can't use back surface as source (f.e., DrvTextOut) are
performed quite well.
Mirror driver is very simple:
1. DrvEnableSurface: EngCreateDeviceSurface, EngAssociateSurface.
2. DrvEscape(start): EngCreateBitmap, EngAssociateSurface,
EngLockSurface.
3. All hooked DrvXxx calls back to the EngXxx, replacing surface,
created at the step 1 by surface, created at the step 2.
As I understand XPDM, there is no sense to the mirror driver on his
origin - gdi should map coordinates by itself. Or there is a necessity
of the "magical steps" to get this working all together?
Thanks! Tag: spam post deleted Tag: 107385
client hardware access
I'm new to driver development and haven't had much luck searching the forums.
How would i go about accessing a driver on a remote (xp or 2000) machine
through tcp/ip.
Basically i don't know how to create a handle to a .sys on a remote machine.
My goal is to make a remote client app that can access my centralized
hardware.
Can anyone point me in the right direction or at least where to find related
material on the subject.
Thanks,
Kyle Tag: spam post deleted Tag: 107384
Resource Rebalancing
We are writing a WDM driver on Windows Server 2008 (64 bit) for our PCI
device. Our device has a 64 bit BAR whose size is a multiple of 32GB. The
BIOS doesn't enable this BAR by default and we'll have to enable it
dynamically by setting a particular bit in the PCI config space. We are doing
this in the AddDevice routine of our driver. Please let me know what is the
procedure to get this BAR recognized by Windows. Will Resource rebalancing
help solve this problem? I know that to intiate the resource rebalancing
sequence, I need to call IoInvalidateDeviceState routine. But where do I call
this routine from? Can somebody please help me solve this problem? Tag: spam post deleted Tag: 107359
Standard user can not do uninstallation in control panel in Vista
Hi Sir
I get a problem with the DIFxAPP.msm when building an installer. The merge
module comes from DIFx 2.1.
We use DIFxAPP.msm to install driver in our installer. After we build the
installer (Setup.exe, SPI.msi, Data1.cab) with the merge module, we login
Vista 32 with an administrator account, and finish the installation with
setup.exe, the driver can be installed correctly.
Then we log out, and re-login as a standard user, and do uninstallation in
control panel. In the uninstallation process, there will be an error and the
process rolls back.
Later under the standard user account we use SPI.msi do uninstallation in
command line, and the process is same with that in control panel. According
the log we catched from command line, the error come from custom action
"UninstallDriverPackages" that comes from the DIFxApp.msm
Following is the prompt information from the log.
DIFXAPP: UninstallDriverPackages()
DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.1.
DIFXAPP: 'CustomActionData' property 'UI Level' is 3.
DIFXAPP: 'CustomActionData' property 'componentId' is
{1B113BBD-6D70-11D4-82D2-00D0B72E1DB9}.
DIFXAPP: 'CustomActionData' property 'flags' is 0x7.
DIFXAPP: 'CustomActionData' property 'ProductName' is Sentinel Protection
Installer 7.5.0.
DIFXAPP: 'CustomActionData' property 'ManufacturerName' is SafeNet, Inc..
DIFXAPP: ERROR 0x2 encountered while opening install-info subkey for
component '{1B113BBD-6D70-11D4-82D2-00D0B72E1DB9}'
DIFXAPP: UninstallDriverPackages failed with error 0x2
DIFXAPP: RETURN: UninstallDriverPackages() 2 (0x2)
The detailed information about Vista 32 is
1. Microsoft Windows [Version 6.0.6000]
2. Windows Vista Enterprise
3. No patch installed
The detailed information about merge module is
1. Come from DIFx 2.1
2. English, x86 (\DIFxApp\English\MergeMod\x86\DIFxApp.msm)
If we do uninstallation under Administrator account, anything are right.
Are there anyone can lend me a hand for the issue, it is a bug of DIFx or
Vista OS? Any comment will do me a great help.
Thanks
gwei Tag: spam post deleted Tag: 107355
Query on Difference in driver behavior when printing directly to
Hi Ben ,
I have been observing a very peculiar behavior for some Genoa
applications while printing from our monolithic printer driver.
If you could spare some time to give your valuable suggestions, it
would be very helpful to us.
Please find the details of the buggy behavior below:
Difference in driver behavior when printing directly to printer
compared to when printed to file
A document formed using the application called LivePix Soho(from Genoa
Test Suite) is printing in an erroneous way(extra lines are printed in
a bitmap) when printed directly to the printer
But it is printing properly when it is printed to file (choose FILE as
the port and specify the file name =93test.prn=94) and the prn is fired to
the printer.
The document contains a 24bits per pixel (8bits each for red, blue and
green) bitmap and some extra lines are printed on the right edge of
the bitmap. I debugged and found that DrvStretchBlt is being called in
our driver and the parameter from GDI having the source image data,
psoSrc->pvScan0, has different and erroneous data when job is given to
printer when compared to the data it has when job is given to file.
Because of this erroneous data the extra lines are getting printed.
Any inputs on the same would be greatly helpful.
Thanks and Regards,
Ayshwarya Mohandas Tag: spam post deleted Tag: 107354
Why my system thread CPU usage reach 100% ?
Hi
I've tried to add a system thread but I found CPU Usage reach 100% , is
there any
possible cause ? I've seen another driver source which use many threads
but CPU
Usage only reached 10% .
I will study its driver source, here is my code , please take a look at it
KeInitializeEvent( &extension->TestThreadEndEvent, SynchronizationEvent,
FALSE );
InitializeObjectAttributes(&extension->TestThreadobjAttr, NULL,
OBJ_KERNEL_HANDLE, NULL, NULL);
extension->btestThreadRunning = FALSE;
ntStatus = PsCreateSystemThread
( OUT &extension->htestThreadHandle,
IN THREAD_ALL_ACCESS,
IN &extension->TestThreadobjAttr,
IN NULL,
OUT NULL,
IN (PKSTART_ROUTINE)testThread,
IN (PVOID) extension
);
void testThread(PVOID pContext)
{
PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION) pContext;
pDevExt->btestThreadRunning = TRUE;
while( pDevExt->btestThreadRunning==TRUE )
{
KeStallExecutionProcessor(10000);
}
KeSetEvent(&pDevExt->TestThreadEndEvent, IO_NO_INCREMENT,FALSE);
}
Thank for your helping . Tag: spam post deleted Tag: 107353
Where can I get the windows7 build 6720 or the later?
It seems there are too many bugs with windows7 build6519, how could I get
the latest windows 7? I need it to test my ndis6.2 NIC driver. Thanks. Tag: spam post deleted Tag: 107342
'Power Management' option lost from DeviceManager, ndis6.2 miniport driver build with WDK6734.1
DeviceManager ¨¤ property lost the ¡®Power Management¡¯ option.
My ndis6.2 NIC driver registerd NDIS_PM_CAPABILITIES, but it never gets
OID_PM_PARAMETERS query/set.
NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES GeneralAttributes;
// pPMCapabilities -- PNDIS_PM_CAPABILITIES
NdisZeroMemory( pPMCapabilities, sizeof(*pPMCapabilities) );
pPMCapabilities->Header.Type = NDIS_OBJECT_TYPE_DEFAULT; /*fixme!*/
pPMCapabilities->Header.Revision = NDIS_PM_CAPABILITIES_REVISION_1;
pPMCapabilities->Header.Size =
NDIS_SIZEOF_NDIS_PM_CAPABILITIES_REVISION_1;
pPMCapabilities->SupportedWoLPacketPatterns =
NDIS_PM_WOL_BITMAP_PATTERN_SUPPORTED | NDIS_PM_WOL_MAGIC_PACKET_SUPPORTED;
pPMCapabilities->NumTotalWoLPatterns = MAX_PATTERN_COUNT;
pPMCapabilities->MaxWoLPatternSize = MAX_PATTERN_SIZE; // maximum
bytes that can be compared against a pattern.
pPMCapabilities->MaxWoLPatternOffset = 0; // strting from MAC header,
how many bytes in the packet can be examined.
pPMCapabilities->MaxWoLPacketSaveBuffer = MAX_PATTERN_SIZE; // how
many bytes of WOL packet can be saved to a buffer and indicated up.
pPMCapabilities->MinMagicPacketWakeUp = NdisDeviceStateD3;
pPMCapabilities->MinPatternWakeUp = NdisDeviceStateD3;
pPMCapabilities->MinLinkChangeWakeUp = NdisDeviceStateD3;
GeneralAttributes.PowerManagementCapabilitiesEx = &PMCapabilities;
Status = NdisMSetMiniportAttributes(Adapter->MiniportAdapterHandle,
(PNDIS_MINIPORT_ADAPTER_ATTRIBUTES)&GeneralAttributes);
Any suggestions? Thanks. Tag: spam post deleted Tag: 107341